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

标签 java jsp servlets web.xml custom-error-pages

我正在使用<error-page> web.xml 中的元素指定用户遇到特定错误(例如代码为 404 的错误)时的友好错误页面:

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

但是,我希望如果用户没有遇到 <error-page> 中指定的任何错误代码,他或她应该看到默认的错误页面。如何使用 web.xml 中的元素来做到这一点?

最佳答案

在 Servlet 3.0 或更高版本上,您可以只指定

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

但是由于您仍然使用 Servlet 2.5,因此除了单独指定每个常见 HTTP 错误之外没有其他方法。您需要确定最终用户可能会遇到哪些 HTTP 错误。在准系统 Web 应用程序上,例如使用 HTTP 身份验证、禁用目录列表、使用自定义 servlet 和代码(可能会引发未处理的异常或未实现所有方法),那么您需要将其设置为 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>

这应该涵盖最常见的。

关于java - 如何在web.xml中指定默认错误页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20946511/

相关文章:

java - JTextArea.print() 打印空白页

java - 如何根据 JAXB 中元素的存在分配 boolean 值?

java - 如何使用 Struts 2 在 JSP 中打印 session 属性

java - 使用时间戳和预准备语句的 JSP SQL INSERT 格式不正确

java - 查询数据一次并在整个应用程序中像缓存一样使用它

javascript - HTML 表单未提交

java - 创建一个包含多个组件的 swing 组件

java - 为什么我需要在 BufferedReader 中捕获 close() 异常,但在 PrintWriter 中不需要?

java - 如何在Struts2中将JSP目标设置为父框架?

java - 设置属性和获取属性 servlet 到 jsp