0

我在这样的地址有一个 JSP 页面:

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

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

http://111.111.111.111/rawr/something.jsp

请注意,域已更改为 IP 并且/foo/bar丢失了。如何获取浏览器使用 JSP 请求的真实 URL?

4

2 回答 2

1

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

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

for (String name : Collections.list(request.getHeaderNames())) {
    System.out.println(name + "=" + Collections.list(request.getHeaders(name)));
}
于 2012-04-05T16:10:12.717 回答
0

您可以使用以下内容来获取不包括域的重写 URL:

String rewrittenURL = request.getHeader("REDIRECT_URL");
于 2013-01-11T09:35:46.310 回答