一尘不染

Java如何在web.xml中指定默认错误页面?

java

当用户遇到某些错误(例如,代码为404的错误)时,我正在使用web.xml中的元素来指定友好错误页面:

<error-page>
        <error-code>404</error-code>
        <location>/Error404.html</location>
</error-page>

但是,我希望如果用户不符合中指定的任何错误代码,则他或她应该看到默认错误页面。我该如何使用web.xml中的元素呢?


阅读 560

收藏
2020-03-09

共1个答案

一尘不染

在Servlet 3.0或更高版本上,你只需指定

<web-app ...>
    <error-page>
        <location>/general-error.html</location>
    </error-page>
</web-app>

但是,由于你仍在使用Servlet 2.5,因此别无选择,只能单独指定每个常见的HTTP错误。你需要确定最终用户可能遇到的HTTP错误。在使用HTTP身份验证,拥有禁用目录列表,使用自定义servlet和代码(可能会引发未处理的异常或未实现所有方法的代码)的准系统Web应用程序上,你需要针对HTTP错误进行设置401 ,403、500和503。

<error-page>
    <!-- Missing login -->
    <error-code>401</error-code>
    <location>/general-error.html</location>
</error-page>
<error-page>
    <!-- Forbidden directory listing -->
    <error-code>403</error-code>
    <location>/general-error.html</location>
</error-page>
<error-page>
    <!-- Missing resource -->
    <error-code>404</error-code>
    <location>/Error404.html</location>
</error-page>
<error-page>
    <!-- Uncaught exception -->
    <error-code>500</error-code>
    <location>/general-error.html</location>
</error-page>
<error-page>
    <!-- Unsupported servlet method -->
    <error-code>503</error-code>
    <location>/general-error.html</location>
</error-page>

那应该涵盖最常见的那些。

2020-03-09