jsp - 当servlet抛出运行时异常时,如何在浏览器中显示用户友好的错误页面?

标签 jsp jsf facelets custom-error-pages

我正在使用 JSF 开发 Web 应用程序。我尽可能地对其进行了测试,但有时会抛出运行时异常。

那么,如何在每次抛出异常时将用户重定向到特殊错误页面(而不是显示 500 错误并显示完整的 tomcat 日志)?

最佳答案

只需声明 <error-page>web.xml其中您可以指定应在某个 Throwable 上显示的页面(或其任何子类)或 HTTP status code 。例如

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

这将在 java.lang.Exception 的任何子类上显示错误页面,但因此不是java.lang.Throwablejava.lang.Error 。这样您就可以拥有自己的任何类型的错误页面 Throwable 。例如。 java.sql.SQLException , java.io.IOException等等。

或者,

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

它将显示 HTTP 500 错误的错误页面,但您也可以为 404(未找到页面)、403(禁止)等指定其他页面。

如果您声明<%@page isErrorPage="true" %>error.jsp 之上,那么你就可以访问抛出的 Exception (以及它的所有 setter/getter )由 ${exception}在EL中。

<p>Message: ${exception.message}</p>

另请参阅Java EE 5 tutorial on the subject .

关于jsp - 当servlet抛出运行时异常时,如何在浏览器中显示用户友好的错误页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2748220/

相关文章:

internet-explorer - JSF2.1.7 将 &lt;!--[if IE ]> 标签呈现为文本

javascript - 让javascript取消jsp页面中的提交

java - 谷歌地图使用java和jsp在Web应用程序中绘制源和目的地之间的路线

jsp - JSF 标记如何影响 JSP 生命周期方法? JSP 和facelets 呢?

java - Primefaces 更新破坏变音符号

jsf - JSF不是空条件

jsf-2 - 使用 ui :composition 时如何更改页面的头部元素

Eclipse JSP : incorrect default text file encoding

java - 如何解决jsp页面中的这种错误?

javascript - 带有 Jsf 1.1 实现的 Ajax