Filter過濾器
一 概述
1.什麼是過濾器?
過濾器是一個運作在Web伺服器端的java應用程式,主要與Servlet配合使用,也可以與其他元件配合使用,用于在請求達到目标資源前對請求進行預處理,在響應到達用戶端前對響應做出處理。
2.Filter工作原理:
Web容器啟動時建立一個與Filter相關的Map集合,key值為Filter的urlPattern,value為Filter的引用變量,将請求uri與Map集合中的key逐個比對,擷取比對的引用變量,存放到數組中,進而形成過濾器鍊,然後執行。
3.生命周期
Filter的建立與銷毀由Web容器負責,容器啟動時建立Filer對象并初始化,隻建立一次。在Web容器調用destroy方法後銷毀,一般在伺服器關閉時才銷毀。
二 過濾器的配置與執行
Filter有兩種注冊方式:在web.xml檔案中配置與在源碼中注釋。其中采用源碼中注釋的方式,注冊分散在多個檔案中,各過濾器在過濾器鍊中的順序難以确定,如果對順序要求較高,必須采用配置的方式。
三 過濾的請求類型
- FORWARD:過濾器隻對請求轉發中的forward起作用。
- INCLUDE:過濾器隻對請求轉發中的include起作用。
- REQUEST:預設值過濾器對所用的請求都起作用。
- ERROR:僅在請求處理過程中發生錯誤時起作用。