11、Filter過濾器介紹

什麼是Filter

  • Filter稱爲是過濾器,是Servlet技術中最實用的技術,web開發人員通過Filter技術,對web服務器所管理的資源(JSP、Servlet、html、靜態頁面等)進行攔截,從而實現一些特定的功能。
  • Filter就是過濾從客戶端向服務器發送的請求。

Filter原理

類似於地鐵的安檢設備。
在這裏插入圖片描述

  • 1、編寫一個類實現Filter接口

在這裏插入圖片描述

  • 2、配置
    在這裏插入圖片描述

FilterChain對象的概述

FilterChain過濾器鏈:在一個web應用中,可以開發編寫多個Filter,這些Filter組合起來稱爲一個FilterChain過濾器鏈。

  • web服務器根據Filter在web.xml文件中的註冊順序(mapping的配置順序)決定先調用哪個Filter,依次調用後面的過濾器,如果沒有下一個過濾器,調用目標資源。
    在這裏插入圖片描述
  • FilterChain只有一個方法doFilter()

Filter的生命週期

Filter的創建和銷燬是由web服務器負責的。

  • web應用程序啓動的時候,web服務器創建Filter的實例對象,並調用其init方法進行初始化(Filter對象只會創建一次,init方法也只會執行一次)。
  • 每次Filter攔截的時候,都會執行doFilter方法。
  • 當服務器關閉時,應用從服務器移除的時候,服務器會銷燬Filter對象。

Filter的相關配置

web.xml下的配置。

  • < url-pattern >的配置
    在這裏插入圖片描述
  • < servlet-name >的配置
    以servlet的配置的名稱攔截servlet。
  • < dispatcher >的配置
    默認的情況下過濾器會攔截請求,如果進行轉發(需要攔截這次轉發)。
    • dispatcher的取值
      • REQUEST:默認值,默認過濾器攔截的就是請求。
      • FORWARD:轉發。
      • INCLUDE:頁面包含的時候進行攔截。
      • ERROR:頁面出現全局錯誤頁面跳轉的時候進行攔截。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章