如何在HTTP GET中获取锚名称?

时间:2011-07-19 10:52:46

标签: java servlets

在Java Web项目中,如何在URL请求中获取(如果可能)“HTTP锚点”部分? 例如,当请求网址为http://localhost:8080/servlet/page.htm?param1=value1&param2=value2#section时,我希望能够识别#section部分。

public void doGet
(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException 
{
  // ...
  System.out.println("QueryString = " + request.getQueryString());
  // ...
}

上面的示例生成 {<1>}之前的子字符串,在这种情况下:#。有没有办法在 param1=value1&param2=value2符号后提取网址的一部分?

如果这有用,我正在使用Apache Click框架。

1 个答案:

答案 0 :(得分:11)

我认为锚点部分不会发送到服务器。它仅由浏览器处理。也许你可以使用JavaScript提取它。

根据RFC 1808

  

请注意片段标识符(以及它之前的“#”)是      不被视为网址的一部分。

来自http://iwebdevel.com/2009/06/10/javascript-get-anchor-from-url/

var url=window.location;
var anchor=url.hash; //anchor with the # character  
var anchor2=url.hash.substring(1); //anchor without the # character