Java Web過濾器學習

1. 過濾器簡介

定義:

過濾器是 一個服務器端的組件,它可以截取用戶端的請求與響應信息,並對這些信息過濾。

2.過濾器的工作原理和生命週期

2.1 過濾器的工作原理:

2.2 過濾器的生命週期:

 

其中:

(1)init()方法:過濾器的初始化方法,web容器創建過濾器實例後將調用這個方法。這個方法中可以讀取web.xml文件中過濾器參數。

(2)doFilter()方法:這個方法完成實際的過濾操作。這個地方是過濾器的核心方法。當用戶請求訪問與過濾器關聯的URL時,Web容器將先調用過濾器的doFilter方法。FilterChain參數可以調用chain.doFilter方法,將請求傳給下一個過濾器(或目標資源),或利用轉發、重定向將請求轉發到其他資源。

(3)destroy()方法:web容器在銷燬過濾器實例前調用該方法,在這個方法中可以釋放過濾器佔用的資源。(大多數情況下用不到)。

過濾器的配置

3. 過濾器鏈

服務器會按照web.xml中過濾器定義的先後順序組裝成一條鏈。

4. 過濾器分類

Serverlet2.5提供了四中類型過濾器:REQUEST、FORWARD、INCLUDE、ERROR。

(1)REQUEST:用戶直接訪問頁面時,Web容器將會調用過濾器。

(2)FORWARD:目標資源是通過RequestDispatcher的forward訪問時,該過濾器將被調用。

(3)INCLUDE:目標資源是通過RequestDispatcher的inlude方法調用時,過濾器將被調用。

(4)ERROR:目標資源是通過聲明式異常處理機制調用時,過濾器將被調用。

Servlet3.0 新增ASYNC過濾器,支持異步處理。

其中,@WebFilter用於將一個類聲明爲過濾器,該註解將會在部署時被容器處理,容器將根據具體的屬性配置將相應的類部署爲過濾器。

6.  過濾器在實際 項目中的應用場景

(1)對用戶請求進行統一認證。

(2)編碼轉換。

(3)對用戶發送的數據進行過濾替換。

(4)轉換圖像格式。

(5)對響應的內容進行壓縮。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章