如何处理Java Web应用程序中的异常和错误?

时间:2014-07-13 10:42:14

标签: jsp web-applications web.xml

如何确保用户没有看到任何丑陋的堆栈跟踪,并根据异常或服务器故障(如使用jsp的Java Web应用程序中找不到404)将用户重定向到某个适当的页面?

1 个答案:

答案 0 :(得分:2)

实现这一目标的方法很少。

在web.xml中,你可以有类似的东西,例如:

<error-page>
    <error-code>404</error-code> 
    <location>/notFoundError.jsp</location>
</error-page>

因此,只要服务器找不到所请求的资源,用户就会被重定向到给定的页面。您还可以在web.xml

中再次处理这样的异常
<error-page> 
    <exception-type>java.lang.ArithmeticException</exception-type>  
    <location>/someOtherPage.jsp</location>
</error-page>

您可以通过以下方式处理所有异常:

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

此外,在jsp文件本身中,您可以使用这样的JSP指令,它将覆盖web.xml中的任何内容:

<%@ page errorPage="errorpage.jsp" %>

这意味着如果jsp中出现任何问题,将加载errorpage.jsp。 errorpage.jsp还需要一个指令,如下所示,这样pageWithError.jsp实际上可以转发到errorpage.jsp:

<%@ page isErrorPage="true" %>

因此,如果您在jsps中有指令(包含错误的页面,以及在出现错误时将显示的页面),则会将其考虑在内。如果没有,并且发生一些错误,将咨询web.xml。仍然没有比赛?那么将显示404或堆栈跟踪..

jsp中的指令类似于覆盖 web.xml。

希望它有所帮助!