【问题标题】:How can I handle exceptions and errors in a Java web application?如何处理 Java Web 应用程序中的异常和错误?
【发布时间】:2014-07-13 18:54:57
【问题描述】:

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

【问题讨论】:

    标签: jsp web-applications web.xml


    【解决方案1】:

    实现这一点的方法很少。

    在 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 中的指令类似于 overriding web.xml。

    希望对你有帮助!!!

    【讨论】:

    • 您能否在duplicate one 中发布相同的答案,这可能对其他人有所帮助。或链接此答案。这将增加阅读您的答案的可能性。
    • @Braj 这个问题是关于在 web.xml 中定义错误页面和错误。我的问题是关于异常以及如何在 jsp 文件中处理它们。
    • @Braj 如果你想帮助我,可以回答这个问题:stackoverflow.com/questions/24721418/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2018-07-18
    • 2012-06-08
    相关资源
    最近更新 更多