2011-08-23 112 views
0

我想要得到一个请求字符串,其字符为#,我的参数只有到#。但事情是我需要拥有这个角色,无法删除它。从java上的查询字符串获取参数字符'#'

有什么想法?

+0

''#是片段标识符。如果它是查询字符串中参数的一部分,则必须首先对查询字符串进行url编码。如果你只是想得到这个片段,我敢肯定,你使用的任何包装都可以以类似的方式获得查询字符串 –

回答

5

Encode#如果它必须在那里。文字#表示fragment id,不能用于任何其他目的的URI。 w3schools有encoding tables,所以你也可以自己查看这些值。

+0

正确,完美! ** URLEncode **和** URLDecode **。我不想使用它,因为生成它的系统的一部分应该尽可能最通用,而不是所有的数据都是url。但是对所有数据进行编码没有问题。谢谢 – banduk

1

您需要正确编码参数值。

如果由JSP生成的URL,请务必使用JSTL c:url标签:

<c:url value="/path/to/myServlet"> 
    <c:param name="param1" value="#paramValue"/> 
</c:url> 

如果您使用的Java直,使用URLEncoder.encode()

如果URL是静态的,则使用%23paramValue代替#paramValue