Servlet中Filter的簡單介紹

        Filter 可認爲是 Servlet 的一種 “ 加強版“,它主要用於對用戶請求進行預處理,也可以對 HttpServletResponse 進行後處理,是個典型的處理鏈。 Filter 也可對用戶請求生成響應,這一點與 Servlet相同但實際上很少會使用 Filter 向用戶請求生成響應。 使用 Filter 完整的流程是Filter 對用戶請求進行預處理, 接着將請求交給 Servlet 進行處理並生成響應, 最後 Filter 再對服務器進行後處理。
        Filter 有如下幾個用處:
  • 在 HttpServletRequest 到達 Servlet 之前,攔截客戶的 HttpServletRequest。
  • 根據需要檢查 HttpServletRequest,也可以修改 HttpServletRequest 頭和數據。
  • 在 HttpServletResponse 到達客戶端之前,攔截 HttpServletResponse。
  • 根據需要檢查 HttpServletResponse,也可以修改 HttpServletResponse 頭和數據。
        Filter 有如下幾個種類:
  • 用戶授權的 Filter: Filter 負責檢查用戶請求, 根據請求過濾用戶非法請求。
  • 日誌 Filter:詳細記錄某些特殊的用戶請求。
  • 負責解碼的 Filter:包括對非標準編碼的請求解碼。
  • 能改變 XML 內容的 XSLT Filter 等。
  • Filter 可負責攔截多個請求或響應;一個請求或響應也可被多個 Filter 攔截。
        創建一個 Filter 只需兩個步驟:
  1. 創建 Filter 處理類。
  2. web.xml 文件中配置 Filter。
發佈了185 篇原創文章 · 獲贊 38 · 訪問量 38萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章