小编典典

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

jsp

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

因此,如何在每次引发异常时将用户重定向到特殊错误页面(而不是在显示完整tomcat日志时显示500错误)?


阅读 323

收藏
2020-06-08

共1个答案

小编典典

只需声明一个<error-page>in
web.xml即可在其中指定可以在特定Throwable(或其任何子类)或HTTP状态代码上显示的页面。例如

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

它会在的任何子类上显示错误页面java.lang.Exception,但不会在java.lang.Throwable或上显示错误页面java.lang.Error。这样,您可以针对任何类型的错误创建自己的错误页面Throwable。例如java.sql.SQLExceptionjava.io.IOException依此类推。

要么,

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

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

如果<%@page isErrorPage="true" %>在顶部声明error.jsp,则可以在EL中访问引发的Exception(因此也包括其所有的获取方法)${exception}

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

另请参阅关于该主题Java
EE 5教程

2020-06-08