如何在JSP中获取重写的URL?

时间:2012-04-05 14:44:12

标签: jsp url-rewriting

我有一个JSP页面,地址如下:

  

http://example.com/foo/bar/rawr/something.jsp

当我输出request.getRequestURL()时,我会得到完全不同的东西:

  

http://111.111.111.111/rawr/something.jsp

请注意,域已更改为IP,但缺少/foo/bar。如何使用JSP获取浏览器请求的真实URL?

2 个答案:

答案 0 :(得分:1)

如果Java EE服务器前面有代理(例如Apache HTTPD),就会发生这种情况。特定代理可以(应该)将原始请求URL设置为请求标头。至少,所有自尊的代理都这样做。

您可以按如下方式抓取所有请求标头以查找它:

for (String name : Collections.list(request.getHeaderNames())) {
    System.out.println(name + "=" + Collections.list(request.getHeaders(name)));
}

答案 1 :(得分:0)

您可以使用以下内容获取不包括域名的重写网址:

String rewrittenURL = request.getHeader("REDIRECT_URL");