web.xml 404重定向到servlet,如何获取原始URI?

时间:2011-09-19 02:23:15

标签: servlets http-status-code-404 web.xml

我正在通过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)。

是否可以获取所请求的“错误”网页网址?

1 个答案:

答案 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>