天天看點

編碼過濾器的步驟及過濾器的生命周期和案例一、過濾器的編寫步驟二、過濾器的生命周期Servlet VS. Filter案例:過濾器的進階配置

一、過濾器的編寫步驟

1、編寫一個類,實作javax.servlet.Filter接口

編碼過濾器的步驟及過濾器的生命周期和案例一、過濾器的編寫步驟二、過濾器的生命周期Servlet VS. Filter案例:過濾器的進階配置

2、配置過濾哪些資源

修改web.xml,配置要過濾器的資源的映射位址

編碼過濾器的步驟及過濾器的生命周期和案例一、過濾器的編寫步驟二、過濾器的生命周期Servlet VS. Filter案例:過濾器的進階配置

3、讓目标資源執行,放行

編碼過濾器的步驟及過濾器的生命周期和案例一、過濾器的編寫步驟二、過濾器的生命周期Servlet VS. Filter案例:過濾器的進階配置

二、過濾器的生命周期

1、過濾器的執行個體由伺服器建立的,其中的方法也是由伺服器調用的

2、過濾器在應用被加載時執行個體化并初始化(調用init方法),隻有一次;使用者每次通路過濾範圍之内的資源,過濾器的doFIlter方法都會執行;應用被解除安裝或伺服器停止時會調用銷毀方法(destroy)。

3、特點:過濾器中的執行個體變量,注意線程安全問題;

過濾器的過濾順序采用責任鍊設計模式:

多個過濾器過濾相同的資源,過濾順序按照web.xml中filter-mapping的出現順序依次進行過濾的。

Servlet VS. Filter

1、Servlet能做的過濾器都能做;過濾器比Servlet多了一個是否放行的功能。

2、Servlet在開發中是作為控制器來用的;Filter也可以作為控制器來用。

3、Struts1架構:Servlet作為控制器

      Struts2架構:FIlter作為控制器(Struts2架構)

過濾器可以實作的功能:

案例:

1、解決POST請求參數和響應輸出的編碼過濾器

編碼過濾器的步驟及過濾器的生命周期和案例一、過濾器的編寫步驟二、過濾器的生命周期Servlet VS. Filter案例:過濾器的進階配置

2、動态資源不要緩存過濾器

編碼過濾器的步驟及過濾器的生命周期和案例一、過濾器的編寫步驟二、過濾器的生命周期Servlet VS. Filter案例:過濾器的進階配置
編碼過濾器的步驟及過濾器的生命周期和案例一、過濾器的編寫步驟二、過濾器的生命周期Servlet VS. Filter案例:過濾器的進階配置

3、控制靜态資源的緩存時間

編碼過濾器的步驟及過濾器的生命周期和案例一、過濾器的編寫步驟二、過濾器的生命周期Servlet VS. Filter案例:過濾器的進階配置
編碼過濾器的步驟及過濾器的生命周期和案例一、過濾器的編寫步驟二、過濾器的生命周期Servlet VS. Filter案例:過濾器的進階配置

4、自動登入過濾器

編碼過濾器的步驟及過濾器的生命周期和案例一、過濾器的編寫步驟二、過濾器的生命周期Servlet VS. Filter案例:過濾器的進階配置

過濾器的進階配置

編碼過濾器的步驟及過濾器的生命周期和案例一、過濾器的編寫步驟二、過濾器的生命周期Servlet VS. Filter案例:過濾器的進階配置
編碼過濾器的步驟及過濾器的生命周期和案例一、過濾器的編寫步驟二、過濾器的生命周期Servlet VS. Filter案例:過濾器的進階配置