日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Filter的详解与配置应用

發布時間:2025/4/5 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Filter的详解与配置应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.filter概念與用處:

????????? filter 直譯為過濾器,是servlet中的重點對象,是web應用組件,是個典型的處理鏈

????????? 主用用于: Jsp, Servlet, 靜態圖片文件或靜態 html 文件等進行攔截,從而實現一些特殊的功能。

?????????????????????? 例如實現URL級別的權限訪問控制、過濾敏感詞匯、壓縮響應信息等一些高級功能。

2.filter的生命周期: (init方法與destroy方法只會執行一次)

????????? 創建: 由WEB服務器負責,服務器啟動及創建,與servlet中的load-on-startup配置為1時效果相同 (只創建一次)

????????? 初始化:創建Filter對象實例后及會調用init()方法,接著被Web容器保存進應用級的集合容器中去了等待著,用戶訪問資源 (只初始化一次)

????????? 攔截: 當用戶訪問的url被Filter的url-pattern攔截時,Filter調用doFilter方法(多次攔截也不會再初始化filter)

????????? 消亡: 當web應用服務被停止或重新裝載了,Filter調用destroy方法,Filter銷毀

3.filter的攔截原理:

?????????? Filter接口中有一個doFilter方法,當開發人員編寫好Filter類實現doFilter方法,并配置對哪個web資源進行攔截后,

?????????? WEB服務器每次在調用web資源的service方法之前(服務器內部對資源的訪問機制決定的),都會先調用一下filter的doFilter方法。

4.filter的應用注意事項:

??????????? 1> filter-mapping標簽中servlet-name與url-pattern。
??????????????? Filter不僅可以通過url-pattern來指定攔截哪些url匹配的資源。

??????????????? 而且還可以通過servlet-name來指定攔截哪個指定的servlet(專門為某個servlet服務了,servlet-name對應Servlet的相關配置)。
??????????? 2> filter-mapping標簽中dispatcher。
??????????????? 指定過濾器所攔截的資源被 Servlet 容器調用的方式,可以是REQUEST,INCLUDE,FORWARD和ERROR之一,默認REQUEST。

??????????????? 用戶可以設置多 個<dispatcher> 子元素用來指定 Filter 對資源的多種調用方式進行攔截。
      REQUEST:
        當用戶直接訪問頁面時,Web容器將會調用過濾器。

????????????????????? 如果目標資源是通過RequestDispatcher的include()或forward()方法訪問或ERROR情況時,那么該過濾器就不會被調用。
      INCLUDE:
?????       如果目標資源是通過RequestDispatcher的include()方法訪問時,那么該過濾器將被調用。除此之外,該過濾器不會被調用。
?????????????? FORWARD:
?????????????????????? 如果目標資源是通過RequestDispatcher的forward()方法訪問時,那么該過濾器將被調用,除此之外,該過濾器不會被調用。
      ERROR:
?????????????????????? 如若在A.jsp頁面page指令中指定了error屬性=examError.jsp,那么A.jsp中若出現了異常,會跳轉到examError.jsp中處理。

?????????????????????? 而在跳轉到examError.jsp時,若過濾器配置了ERROR的dispather那么則會攔截,否則不會攔截。

5.filter的實例入門:

??????????????? 1、新建一個類,實現Filter接口
      2、實現doFilter()方法,打印一句話,來證明能夠進行攔截
      3、在web.xml中進行配置(參照Servlet配置)
      4、訪問一個頁面,看看能不能攔截
     

????????????

轉載于:https://www.cnblogs.com/yiyongyao/p/4501059.html

總結

以上是生活随笔為你收集整理的Filter的详解与配置应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。