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