springmvc多個攔截器的執行順序

原文地址 :https://blog.csdn.net/amaxiaochen/article/details/77210880

springmvc的攔截器實現HandlerInterceptor接口後,會有三個抽象方法需要實現,分別爲方法前執行preHandle,方法後postHandle,頁面渲染後afterCompletion

1、當倆個攔截器都實現放行操作時,順序爲preHandle 1,preHandle 2,postHandle 2,postHandle 1,afterCompletion 2,afterCompletion 1

2、當第一個攔截器preHandle返回false,也就是對其進行攔截時,第二個攔截器是完全不執行的,第一個攔截器只執行preHandle部分。

3、當第一個攔截器preHandle返回true,第二個攔截器preHandle返回false,順序爲preHandle 1,preHandle 2 ,afterCompletion 1

總結:

preHandle 按攔截器定義順序調用

postHandler 按攔截器定義逆序調用

afterCompletion 按攔截器定義逆序調用

postHandler 在攔截器鏈內所有攔截器返成功調用

afterCompletion 只有preHandle返回true才調用

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