過濾器和攔截器執行流程

  權限認證有三塊(1)過濾器 (2)攔截器 (3)單獨寫代碼邏輯處理,函數調用等。

只有過濾器運行邏輯:,
過濾器中的內容->doFilter->doFilter後面的邏輯

過濾器中的內容
############TestFilter1 doFilterInternal executed############
############TestFilter2 doFilterInternal executed############
doFilter
############TestFilter2 doFilter after############
############TestFilter1 doFilter after############
過濾器中的內容
############TestFilter1 doFilterInternal executed############
############TestFilter2 doFilterInternal executed############
doFilter
############TestFilter2 doFilter after############
############TestFilter1 doFilter after############

-------------------------------------------------------------------------------------------------------------------------------


有過濾器,又有攔截器,執行邏輯如下:
過濾器中的內容->攔截器preHandle-執行控制器的內容邏輯->攔截器postHandle->攔截器afterCompletion->過濾器doFilter->doFilter->doFilter後面的邏輯->
過濾器:
############TestFilter1 doFilterInternal executed############
############TestFilter2 doFilterInternal executed############
攔截器preHandle:
************TestInterceptor preHandle executed**********
過了攔截器preHandle後,執行controller層邏輯:
---------TestController executed--------
攔截器postHandle:
************TestInterceptor postHandle executed**********
攔截器afterCompletion:
************TestInterceptor afterCompletion executed**********
過濾器doFilter 驗證後的邏輯:
############TestFilter2 doFilter after############
############TestFilter1 doFilter after############
過濾器:
############TestFilter1 doFilterInternal executed############
############TestFilter2 doFilterInternal executed############
過了攔截器preHandle後,執行controller層邏輯:
************TestInterceptor preHandle executed**********
過了攔截器preHandle後,執行controller層邏輯:
---------TestController executed--------
攔截器postHandle:
************TestInterceptor postHandle executed**********
攔截器afterCompletion:
************TestInterceptor afterCompletion executed**********
過濾器doFilter 驗證後的邏輯:
############TestFilter2 doFilter after############
############TestFilter1 doFilter after############

  

結論:
過濾器在攔截器之前,過濾器是全局的。過濾器的規則完全依賴於url-pattern,如果路由規則不符合url-pattern,不走相關過濾器。如果想讓過濾器失效,需要想辦法繞過url-pattern規則,比如說url-pattern的配置不當可以被繞過。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章