我有一个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);
答案 0 :(得分:1)
我想
<error-page>
<error-code>404</error-code>
<location>/error.do</location>
</error-page>
应该在tomcat的web.xml inside conf
文件夹中。
答案 1 :(得分:0)
sendError()
代替setStatus()
可以实现我的目标。谢谢!