我有一个JSP页面,地址如下:
当我输出request.getRequestURL()
时,我会得到完全不同的东西:
请注意,域已更改为IP,但缺少/foo/bar
。如何使用JSP获取浏览器请求的真实URL?
答案 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");