0

我有一个 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);
4

2 回答 2

1

我想

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

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

于 2012-10-25T08:53:46.523 回答
0

“家”给出了正确的线索。使用sendError()而不是setStatus()做我想要的。谢谢!

于 2012-10-25T09:34:22.923 回答