Spring Web MVC的處理器攔截器類似于Servlet開發(fā)中的過濾器Filter坷澡,用于對處理器進(jìn)行預(yù)處理和后處理托呕。
實(shí)現(xiàn)HandlerInterceptor接口含蓉,如下:
攔截器配置
1.? ? 針對某種mapping配置攔截器
2.? ? 針對所有mapping配置全局?jǐn)r截器
正常流程測試
定義兩個攔截器分別為:HandlerInterceptor1和HandlerInteptor2,每個攔截器的preHandler方法都返回true项郊。
運(yùn)行流程
HandlerInterceptor1..preHandle..
HandlerInterceptor2..preHandle..
HandlerInterceptor2..postHandle..
HandlerInterceptor1..postHandle..
HandlerInterceptor2..afterCompletion..
HandlerInterceptor1..afterCompletion..
總結(jié):
preHandle按攔截器定義順序調(diào)用
postHandler按攔截器定義逆序調(diào)用
afterCompletion按攔截器定義逆序調(diào)用
postHandler在攔截器鏈內(nèi)所有攔截器返成功調(diào)用
afterCompletion只有preHandle返回true才調(diào)用