如何从web.xml中将所有错误捕获到同一页面?

时间:2010-06-02 08:49:19

标签: java web.xml custom-error-pages deployment-descriptor

我尝试使用

<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/errors/error.jsp</location>  
</error-page> 

但我没有抓到404错误。如何在同一页面上捕获404等错误?我想将所有错误代码捕获到相同的错误页面jsp。

3 个答案:

答案 0 :(得分:10)

您可以为

添加<error-code>标记
<error-page>
    <error-code>404</error-code>
    <location>/errors/error.jsp</location>
</error-page> 

更新:

根据您更新的问题 - 您必须在web.xml中单独定义EACH错误代码。

使用<exception-type>java.lang.Throwable</exception-type> 将捕获错误500但不捕获404s

答案 1 :(得分:3)

我正在使用它:

<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/pages/exception/sorry.html</location>
</error-page>

<error-page>
    <error-code>403</error-code>
    <location>/security/403</location>
</error-page>

<error-page>
    <error-code>404</error-code>
    <location>/security/404</location>
</error-page>

答案 2 :(得分:0)

在Tomcat7中(可能适用于旧版本,但我没有检查)

添加您想要的错误页面(例如404.jsp,general_error.php等)

添加到web.xml(首先是所有内容,然后是特定内容。当然,请将其调整为您的代码):

<error-page>
    <location>general_error.php</location>
</error-page>

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

<error-page>
    <error-code>409</error-code>
    <location>error_page.jsp?error=custom_message</location>
</error-page>