如何在Tomcat中为多个错误代码使用相同的错误页面?

ste*_*fan 4 javascript java jsp tomcat

我正在尝试从tomcat servlet发送纯文本错误消息,以便应用程序可以将响应呈现给用户.

我的web.xml中有以下内容:

<error-page>
    <error-code>409</error-code>
    <location>/string_error.jsp</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

string_error.jsp如下:

${requestScope['javax.servlet.error.message']}
Run Code Online (Sandbox Code Playgroud)

这成功地为我提供了409响应的纯文本错误消息.但是,我想对400/500范围内的任何错误使用同一页面,而无需<error-page>为每个错误手动指定新块.我<error-code>*</error-code>本以为会做到这一点,但事实并非如此.Tomcat是否提供了执行此操作的机制?

Bal*_*usC 5

如果您正在使用Servlet 3.0容器(例如Tomcat 7.0),那么您可以省略<error-code>(或<exception-type>)元素以使其成为全局默认错误页面.

<error-page>
    <location>/string_error.jsp</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

从Servlet 3.0开始,那些元素就是可选的.

但是,如果您还没有使用Servlet 3.0,那么您必须在容器级别配置它.例如,在Tomcat 6.0(Servlet 2.5容器)中,您需要创建一个自定义错误报告Valve类.然后,您可以将其指定为errorReportValveClass在属性<Host>元素/conf/server.xml文件中.

对于其他容器,请查阅其文档.