无法在过滤器java中获取包含#符号的整个URL

时间:2016-05-31 08:18:29

标签: java jsp servlets web-applications liferay

我想在过滤器中获取整个网址,但在#

之后却没有给我

浏览器网址:

 /en_US/web/guest/regulatory/disclosures#esma_endorsement 

以下是在我的过滤器中获取网址的代码:

  String reqUrl = httpReq.getRequestURL().toString();  

总是给出:

    /en_US/web/guest/regulatory/disclosures

我也尝试过使用queryString,但没有运气。

我想和#symbol一起获取网址

任何人都可以帮助我吗?

谢谢, 纳雷什。

2 个答案:

答案 0 :(得分:1)

它是如何运作的。 #部分由浏览器解释为客户端。没有必要让服务器知道这一部分。如果您确实需要它,可以使用浏览器上的javascript访问它,并使用参数将其显式发送到服务器。但如果您没有明确处理它,它就不会成为URL的一部分。当它出现时,它不会被#

分开

答案 1 :(得分:1)

您希望收到的部分实际上不属于URI。哈希字符称为“片段标识符”,它不会发送到服务器。该部分用于浏览器上的一些额外操作。

所以基本上你无法在服务器端检索那部分。但你可以做一些技巧,比如在前端检索相关部分并作为你网址的一部分发送回服务器,如:

/en_US/web/guest/regulatory/disclosures?name=esma_endorsement