我有一个Error404Servlet,在web.xml中配置为404的错误页面:
<servlet>
<servlet-name>Error404</servlet-name>
<servlet-class>com.foo.bar.Error404Servlet</servlet-class>
</servlet>
<error-page>
<error-code>404</error-code>
<location>/error404</location>
</error-page>
在这个servlet中我必须记录导致404的原始url,但是request.getRequestURI()总是返回“/ error404”
我如何获得原始网址?我知道的非常难看的方法是创建过滤器,将原始URL放入请求属性。
答案 0 :(得分:11)
如果发生错误,您可以从请求中检索容器设置的属性:
request.getAttribute("javax.servlet.error.request_uri");
其他可以提供有用信息的属性;
javax.servlet.error.status_code
javax.servlet.error.exception_type
javax.servlet.error.message
javax.servlet.error.exception