我有一个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放入request属性的过滤器。
如果发生错误,可以从请求中检索由容器设置的属性:
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
另请参阅此Servlet 2.3功能文章。