2009-12-10 73 views
3

我有被配置为错误页404 web.xml中Error404Servlet:如何获得原始网页网址/请求调度向前后URI

<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,但request.getRequestURI()总是返回“/ error404”

我怎样才能得到原始的网址?我知道的非常丑陋的方法是创建过滤器,将原始网址请求属性。

回答

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 

另请参阅此servlet 2.3 features article

+0

您好我在哪里可以找到查询参数,其中使用HTTP_Method和httpheaders? – wutzebaer 2012-11-23 12:16:49