重定向到已配置的错误页面

时间:2012-10-25 08:07:09

标签: java java-ee tomcat web-applications

我有一个servlet来处理与模式匹配的请求(* .sth)。现在我想抛出一个404,如果调用了一个URL,它匹配模式但不应该被调用。我通过在HttpServletResponse上设置状态来完成此操作。 在web.xml中是配置了404s的自定义错误页面。如果tomcat本身抛出404,而不是我的servlet,则会打开此错误页面。当然我可以直接调用页面,但我对更通用的方式感兴趣,因为servlet也用在其他Web应用程序中。有没有办法让配置的错误页面能够重定向到它们或告诉Web容器使用它们?

web.xml片段:

<servlet>
    <display-name>Controller</display-name>
    <servlet-name>Controller</servlet-name>
    <servlet-class>com.example.Controller</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Controller</servlet-name>
    <url-pattern >*.do</url-pattern>
</servlet-mapping>

<error-page>
    <error-code>404</error-code>
    <location>
        /error.do
    </location>
</error-page>

设置状态:

response.setStatus(HttpServletResponse.SC_NOT_FOUND);

2 个答案:

答案 0 :(得分:1)

我想

<error-page>
    <error-code>404</error-code>
    <location>/error.do</location>
</error-page>

应该在tomcat的web.xml inside conf文件夹中。

答案 1 :(得分:0)

'home'给了正确的线索。使用sendError()代替setStatus()可以实现我的目标。谢谢!