八、攔截器

1 攔截器的作用

Spring MVC的處理器攔截器類似於Servlet開發中的過濾器Filter,用於對處理器進行預處理和後處理。用戶可以自己定義一些攔截器來實現特定的功能。
談到攔截器,還要向大家提一個詞——攔截器鏈(Interceptor Chain)。攔截器鏈就是將攔截器按一定的順序聯結成一條鏈。在訪問被攔截的方法或字段時,攔截器鏈中的攔截器就會按其之前定義的順序被調用。
說到這裏,可能大家腦海中有了一個疑問,這不是我們之前學的過濾器嗎?是的,它和過濾器是有幾分相似,但是也有區別:

  1. 過濾器是Servlet規範中的一部分,任何java web工程都可以使用;
  2. 攔截器是Spring MVC框架自己的,只有使用了Spring MVC框架的工程才能用;
  3. 過濾器在url-pattern中配置了/*之後,可以對所有要訪問的資源攔截;
  4. 攔截器只會攔截訪問的控制器方法,如果訪問的是jsp、html、css、image或js則不會進行攔截。它也是AOP思想的具體應用。

2 自定義攔截器的步驟

我們要想自定義攔截器,要求必須實現HandlerInterceptor接口。

2.1 編寫一個普通類實現HandlerInterceptor接口

/**
 * 自定義攔截器
 */
public class HandlerInterceptorDemo1 implements 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章