Filter過濾器

通過一個生活中的例子來說明過濾器到底是個什麼東西
在這裏插入圖片描述
小紅帽 去外婆家的路上遇到了一個土匪,那麼此時(小紅帽就是用戶),(土匪就可以比作一個過濾器),(外婆家就是一個服務器),小紅帽要訪問外婆家就必須經過土匪,土匪打劫了小紅帽的錢財後,然後將其放行

web中的過濾器:當訪問服務器資源時,過濾器可以將請求攔截下來,完成一些特殊的功能。

過濾器的作用:

*一般用於完成通用的操作:如登錄驗證,統一編碼處理,敏感字符過濾.....

使用步驟

1.定義一個類,實現Filter接口
2.複寫方法

  • init() 服務器啓動後,在創建Filter對象時執行一次…一般用於加在資源
  • doFilter() 每次訪問都會執行
  • destroy() 服務器正常關閉執行

3.配置攔截路徑

  • web.xml配置
    <filter>
        <filter-name>必須和下面的名字一致(名字隨意)</filter-name>
        <filter-class>Filter的完整的路徑名</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>必須和上面的名字一致(名字隨意)</filter-name>
        <url-pattern>攔截路徑</url-pattern>
    </filter-mapping>
  • 註解配置
@WebFilter("攔截路徑")

細節

攔截路徑配置

語法 說明
/index.jsp 具體訪問資源目錄時
/包名/* 訪問某一個包下所有的目錄時
*.jsp 攔截所有後綴名是jsp的(注意沒有斜槓)
/* 所有資源

攔截方式配置
設置dispatcherTypes屬性,有2個常用的值(
(1)REQUEST: 默認,瀏覽器直接請求資源纔會執行
(2)FORWARD: 轉發訪問的資源纔會執行)

@WebFilter(value = "攔截路徑",dispatcherTypes = "屬性名")

過濾器鏈(多個Filter)
執行順序

  • 註解配置按類名的字符串大小排序,大的先執行(比如:Demo01和bDemo02;aDemo02就會先執行)
  • web.xml:誰定義在上面誰先執行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章