一、 什麼是過濾器
從技術上講過濾器是一箇中間組件,用於攔截源數據和目的數據間的消息,並且過濾二者之間傳遞的數據。對於 WEB 應用程序,過濾器是駐留在 WEB 服務器上的 WEB 組件。對於客戶端和目標資源而言過濾器是透明的,他們是不知道發送來的數據是否經過過濾器的處理。
二、 過濾器的作用
過濾器相當於一個警衛,阻止不想要的信息從一個點傳遞到另一個點。我們通常利用過濾器進行以下幾種應用:
l 認證過濾
l 登陸和審覈過濾
l 圖像轉換過濾
l 數據壓縮過濾
l 加密過濾
l 令牌過濾
l 資源訪問觸發事件過濾
l XSLT 過濾
l MIME-type 過濾
三、 過濾器的生命週期
一個過濾器要經過編碼、編譯、部署、運行四個步驟。
l 當服務器啓動時, web 容器調用 init() 方法對過濾器進行初始化, init ()這個方法只執行一次。
l 服務器啓動後,當滿足要求的數據到來時 web 容器調用 doFilter() 方法對數據進行過濾。
l 當服務器關閉時 web 容器調用 destroy() 方法銷燬過濾器。
四、 怎樣編寫過濾器
1. 我們編寫的過濾器應該實現 Filter 接口,並實現裏面的全部方法。
2. 在 web.xml 文件中實現過濾器的配置(和 Servlet 類似)。
五、 一個 servlet 對應多個過濾器時候過濾器執行順利
1. 範圍大的先執行,範圍小的後執行。
2. 先執行 <url-pattern> 後執行 <servler-name>
3. 同爲 <url-pattern> 或同爲 <servler-name> 時根據其在 web.xml 文件中出現的先後順利執行。