1. 程式人生 > >springMVC攔截器學習總結

springMVC攔截器學習總結

自定義攔截器概述

Spring MVC也可以使用攔截器對請求進行攔截處理,使用者可以自定義攔截器來實現特定的功能,自定義的攔截器可以實現HandlerInterceptor 介面,或者可以繼承HandlerInterceptorAdapter 介面卡類  

  • preHandle():這個方法在業務處理器處理請求之前,在該方法中對使用者請求的請求進行處理在此攔截器裡可以,事務,日誌的操作如果程式設計師決定該攔截器對請求進行攔截處理後還要呼叫其他的攔截器,或者是業務處理器去進行處理,則返回true ;如果程式設計師決定不需要再呼叫其他的元件去處理請求,則返回false
  • 的postHandle
    ():這個方法在業務處理器處理完請求後,但是DispatcherServlet的向客戶端返回響應前被呼叫,在該方法中對使用者請求請求。
  • afterCompletion():這個方法DispatcherServlet 完全處理完請求後被呼叫,可以在該方法中進行一些資源清理釋放的操作。

攔截器的執行順序

單個攔截器:

若有多個攔截器進行攔截,執行順序為preHandle為正序執行,的的的postHandle,afterCompletion執執執為倒序執行

若preHandle執行返回真,則繼續執行後面的方法,否則執行停止。若兩個preHandle有一個執行返回結果為假,則返回真正的preHandle必執行afterCompletion執執執行。

配置自定義攔截器

在springMVC的配置檔案中配置

<mvc:interceptors>
<!-- 宣告自定義攔截器 -->
<bean id="firstHandlerInterceptor"
  class="com.atguigu.springmvc.interceptors.FirstHandlerInterceptor"></bean>
<!-- 配置攔截器引用 -->
<mvc:interceptor>                        
<mvc:mapping path="/empList"/>
<!-- <mvc:exclude-mapping path="/empList"/> -->
<bean id="secondHandlerInterceptor"
         class="com.atguigu.springmvc.interceptors.SecondHandlerInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>

其中MVC:對映配置攔截器可攔截的路徑,MVC:排除對映配置攔截器不可攔截的路徑。