我在这样的地址有一个 JSP 页面:
当我输出request.getRequestURL()
时,我得到了完全不同的东西:
请注意,域已更改为 IP 并且/foo/bar
丢失了。如何获取浏览器使用 JSP 请求的真实 URL?
我在这样的地址有一个 JSP 页面:
当我输出request.getRequestURL()
时,我得到了完全不同的东西:
请注意,域已更改为 IP 并且/foo/bar
丢失了。如何获取浏览器使用 JSP 请求的真实 URL?
如果 Java EE 服务器前面有代理(例如 Apache HTTPD),就会发生这种情况。特定代理可以(应该)将原始请求 URL 设置为请求标头。至少,所有自尊的代理人都这样做。
您可以按如下方式爬取所有请求标头以找到它:
for (String name : Collections.list(request.getHeaderNames())) {
System.out.println(name + "=" + Collections.list(request.getHeaders(name)));
}
您可以使用以下内容来获取不包括域的重写 URL:
String rewrittenURL = request.getHeader("REDIRECT_URL");