从java上的查询字符串中获取带有“#”字符的参数

时间:2011-08-23 18:30:38

标签: java servlets query-string http-request

我正在尝试获取具有字符#的请求字符串,并且我的参数仅在#之前得到。但问题是我需要有这个角色,不能删除它。

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

您需要正确编码参数值。

如果URL是由JSP生成的,请确保使用JSTL c:url标记:

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

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

如果网址是静态的,请使用%23paramValue代替#paramValue