我正在使用<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/