[Spring MVC] - 500/404錯誤處理


Spring MVC中404 找不到頁面錯誤可以直接使用web.xml中配置:

在<web-app/>節點內加入:

    <error-page>
        <error-code>404</error-code>
        <location>/WEB-INF/views/errors/404.jsp</location>
    </error-page>

 

500的運行時錯誤,可以使用Spring MVC的SimpleMappingExceptionResolver配置:

    <!-- 全局異常配置 -->
    <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
            <props>
                <prop key="java.lang.Exception">errors/500</prop>
                <prop key="java.lang.Throwable">errors/500</prop>
            </props>
        </property>
        <property name="statusCodes">
            <props>
                <prop key="errors/500">500</prop>
            </props>
        </property>
        <!-- 設置日志輸出級別,不定義則默認不輸出警告等錯誤日志信息 -->
        <property name="warnLogCategory" value="WARN"></property>
        <!-- 默認錯誤頁面,當找不到上面mappings中指定的異常對應視圖時,使用本默認配置 -->
        <property name="defaultErrorView" value="errors/500"></property>
        <!-- 默認HTTP狀態碼 -->
        <property name="defaultStatusCode" value="500"></property>
    </bean>

對應500錯誤的view jsp頁面:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>500 Error</title>
</head>
<body>
    <% Exception ex = (Exception)request.getAttribute("exception"); %>
    <H2>Exception: <%= ex.getMessage()%></H2>
    <P/>
    <% ex.printStackTrace(new java.io.PrintWriter(out)); %>
</body>
</html>

測試:

 

另外,也可以使用繼承HandlerExceptionResolver來處理500的錯誤。

 

參考文章引用:

http://www.cnblogs.com/xguo/p/3163519.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM