Spring MVC 攔截器

springMVC中對攔截器有良好的支持。一般可通過兩種方式,其一實現Spring 的HandlerInterceptor 接口或繼承該接口的實現類;其二實現Spring的WebRequestInterceptor接口貨繼承該接口的實現類。

攔截器的用途是非常廣的,它主要的作用是攔截用戶請求,處理數據,判定請求是否合理,決定是否放行。通常把攔截器用來驗證權限、判斷用登陸狀態等。

今天小博老師先給大家介紹SpringMVC中第一種攔截器的實現方式。我們先來看一下HandlerInterceptor接口的源碼結構:

HandlerInterceptor 接口中定義了三個方法:

1.preHandle 方法。該方法會在請求處理之前進行調用。返回值是布爾值Boolean 類型的,當返回false時請求結束,后續攔截器 和Controller 都不會被執行;當返回true 時繼續調用下個攔截器 的preHandle 方法,如果已經是最后一個攔截器,則調用當前請求的Controller 方法。

2.postHandle 方法。該方法在請求處理之后,即Controller 方法調用之后執行。但是將會DispatcherServlet 進行視圖渲染之前被調用,因此可以對Controller 處理之后的ModelAndView 對象進行操作,以便于在視圖渲染時使用。

3.afterCompletion方法。該方法在整個請求結束之后,即DispatcherServlet 渲染對應的視圖之后才被執行。這個方法的主要作用是進行對象清理、資源釋放。

攔截器在spring中的配置方式如下:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容