如何确保用户不会看到任何丑陋的堆栈跟踪,并根据异常或服务器故障(例如在使用jsp的Java Web应用程序中找不到的404错误)将用户重定向到某个适当的页面?
有几种方法可以实现此目的。
在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。
希望能帮助到你!!!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句