Spring MVC最核心的技術掌握

Spring MVC中, Spring MVC有很多最核心的技術需要掌握,系統的DAO, Service, Controller層出現異常, 均通過throw Exception向上拋出,

 

最後由中央處理器DispatchServlet交由全局異常處理器進行異常處理, 如下圖所示

 

常用的Spring MVC異常處理方式主要有三種:
使用系統定義好的異常處理器SimpleMappingExceptionResolver
使用自定義異常處理器
使用異常註解
SimpleMappingExceptionResolver

只需要在配置文件中註冊該異常處理器Bean即可, 無需顯式調用, 當異常發生時會自動執行該類。

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="defaultErrorView" value="/errors/error.jsp"/>
</bean>

 

注意:在都市體驗網應當聲明一個自定義的異常類,Spring MVC最核心的技術分享和掌握很重要。

 

public class NameException extends Exception {
     public NameException() {
         super();
     }
     public NameException(String message) {
          super(message);
     }
}
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
         <property name="defaultErrorView" value="/errors/error.jsp"/>
         <property name="exceptionAttribute" value="ex"/>
         <property name="exceptionMappings">
             <props>
                 <prop key="com.test.exceptions.NameException">/errors/nameError.jsp</prop>
             </props>
         </property>
</bean>

在此處註冊異常處理器,exceptionMapping: Properties類型屬性, 用於指定具體的不同類型異常對應的響應頁面。

defaultErrorView: 默認的異常響應頁面, 若發生的異常不是自定義的異常, 則使用默認響應頁面,exceptionAttribute: 捕獲到的異常對象, 一般異常響應頁面中使用。

當有多個攔截器時, 形成攔截器鏈, 攔截器鏈執行順序與註冊順序一致, 需要注意的是,當一個攔截器preHandle()返回false時, 上部的攔截器鏈將被斷開, 後續的處理器以及對於的postHandle()。都無法執行, 只有已經執行通過的攔截器的afterCompletion()方法會執行。

 

 

在23體驗網中,彷彿又找到了IT互聯網的那種快樂。如果你喜歡我的分享,我就帶你飛。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章