創建自定義攔截器(示例)----默然說話20140411備課筆記

創建自定義攔截器

  • 創建自定義攔截器——SysInterceptor.java
    • 繼承HandlerInterceptorAdapter
    • 實現prHandle()
SysInterceptor.java源代碼
public class SysInterceptor extends HandlerInterceptorAdapter {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        return super.preHandle(request, response, handler);
    }
}
springmvc-config.xml源代碼
<mvc:interceptors>
    <mvc:interceptor >
        <!-- 攔截路徑指定 -->
        <mvc:mapping path="/sys/**"/>
        <bean class="interceptor.SysInterceptor" />
    </mvc:interceptor>
</mvc:interceptors>

以上僅爲代碼示例,並無任何可執行代碼。

下面是對HandlerInterceptor接口中聲明的三個方法的方法說明

  • preHandle:預處理回調方法,實現處理器的預處理(如登錄檢查),第三個參數爲響應的處理器(如我們上一章的Controller實現);
    • 返回值:true表示繼續流程(如調用下一個攔截器或處理器);
    • 返回值:false表示流程中斷(如登錄檢查失敗),不會繼續調用其他的攔截器或處理器,此時我們需要通過response來產生響應;
  • postHandle:後處理回調方法,實現處理器的後處理(但在渲染視圖之前),此時我們可以通過modelAndView(模型和視圖對象)對模型數據進行處理或對視圖進行處理,modelAndView也可能爲null。
  • afterCompletion:整個請求處理完畢回調方法,即在視圖渲染完畢時回調,如性能監控中我們可以在此記錄結束時間並輸出消耗時間,還可以進行一些資源清理,類似於try-catch-finally中的finally,但僅調用處理器執行鏈中preHandle返回true的攔截器的afterCompletion。
發佈了293 篇原創文章 · 獲贊 56 · 訪問量 72萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章