我正在通过web.xml中的以下内容将404错误重定向到servlet。
<error-page>
<error-code>404</error-code>
<location>/notFound.do</location>
</error-page>
我想记录请求尝试去的地方,但我没有从引用者标题中获取它:request.getHeader(“referer”)
如果我只是点击任何旧的随机不存在的页面,则显示'null'。
request.getRequestURL()/ request.getRequestURI()都只显示最终的登陆servlet信息(即,/ notFound)。
是否可以获取所请求的“错误”网页网址?
答案 0 :(得分:21)
是的,它可用作名为javax.servlet.forward.request_uri
的请求属性,该属性由RequestDispatcher#FORWARD_REQUEST_URI
键入。错误页面位置即通过简单的RequestDispatcher#forward()
调用来调用。
所以,你可以在servlet中得到如下:
String originalUri = request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI);
或在EL中:
<p>Original URI: ${requestScope['javax.servlet.forward.request_uri']}</p>