url的参数中加入#号后get不到完整的参数了,为什么?

来源:百度知道 编辑:UC知道 时间:2024/06/08 03:48:09
比如这样一个url
http://localhost:8080/demo/hello.jsp?a=hello&b=ni#hao

这时在jsp页面上
String a = request.getParameter("a");
String b = request.getParameter("b");

a的值没问题,a="hello"
但是b的值为 b="ni", 后面的"#hao"都不见了,为什么呢?

如果我想获得完整的参数"ni#hao"应该怎样做呢?

因为我获得这个参数是要根据"#"为分界符号解析有用的。

谢谢!
String url = "http://localhost:8080/demo/hello.jsp?a=hello&b=ni\#hao ";
加了转义字符\后整个String就错了……

#号后面的数据在URL里面是anchor,不算作request里面的内容的。
如果要得到它,不能用parameter,要用request.getURL()函数,得到整个URL字符串,然后再把他截出来。

但我很怀疑浏览器会不会把#号后面的东西发到服务器,因为那个是在浏览器利用做内容定位的。

#是特殊字符 需要用转意字符"\"

用#代替井号试试看