有没有办法在tomcat的web.xml中为所有错误代码配置ONE自定义错误页面的使用?

Kai*_*ann 11 configuration tomcat

如标题中所述,我想更改tomcat中的默认错误页面并执行:

<error-page>
  <error-code>500</error-code>
  <location>/error_500.html</location>
</error-page>

 <error-page>
   <error-code>404</error-code>
   <location>/error_404.html</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

是否可以使用通配符错误代码

<error-page>
  <error-code>*</error-code>
  <location>/error.html</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

(上面的例子不起作用,但有另一种方法吗?)

谢谢

Bal*_*usC 10

不,Tomcat没办法了.

Servlet 3.0规范支持全局错误页面,如下所示:

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

所以理论上它应该至少在Tomcat 7.0中起作用.但它在Tomcat 7.0中没有正确实现.我曾经有过关于此的问题52135,但他们否认了这一点.它适用于其他Servlet 3.0容器.

但是,您可以通过实现特定于Tomcat的ErrorReportValve类来解决此问题,然后将其注册为<Host errorReportValveClass>.

  • 请注意,Tomcat [issue 52135](https://issues.apache.org/bugzilla/show_bug.cgi?id=52135)现已解决(并将包含在Tomcat 7.0.29中). (2认同)