天天看點

Filter過濾器

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:僅在請求處理過程中發生錯誤時起作用。

繼續閱讀