如何获取导致404错误的请求页面的网址?
例如,我输入http://example.com/path/does/not/exist/index.jsp 我已经有了一个自定义的404页面,但是如何检索上面提到的URL以便我可以显示类似于“网址http://example.com/path/does/not/exist/index.jsp不存在”的消息?
答案 0 :(得分:9)
如果使用转发转到错误页面,您可以通过
获取原始请求网址request.getAttribute("javax.servlet.forward.request_uri")
或EL
${requestScope['javax.servlet.forward.request_uri']}
答案 1 :(得分:0)
我正在使用JDK 8和GlassFish 4,以及
request.getAttribute("javax.servlet.forward.request_uri")
总是为我返回null。最终起作用的是
request.getAttribute("javax.servlet.error.request_uri")
我不确定为什么属性名称不同,但如果我列出的名称对您的设置不起作用,这里是我用来找到它的代码......
Enumeration<String> names = request.getAttributeNames();
while(names.hasMoreElements()){
String name = names.nextElement();
Object attr = request.getAttribute(name);
System.out.println("Req: "+name + " : "+attr);
}