Filter過濾器學習

Filter過濾器學習:

 首先我們需知道什麼是過濾器:

    Java servlet API中提供了一個Filter接口,實現了這個接口的類會被稱之爲Filter。Filter能夠在用戶訪問某個資源之前攔截請求,從而對請求進行檢查,實現URL級別的權限訪問控制、過濾敏感詞彙、壓縮響應信息等一些高級功能。

如何實現的:

 Filter接口中有一個doFilter方法,當我們編寫好Filter,並配置對哪個web資源進行攔截後,WEB服務器每次在調用web資源的service方法之前,都會先調用一下filterdoFilter方法,因此,在該方法內編寫代碼可達到如下目的:

  1. 調用目標資源之前,讓一段代碼執行。
  2. 是否調用目標資源(即是否讓用戶訪問web資源)。
  3. 調用目標資源之後,讓一段代碼執行。

web服務器在調用doFilter方法時,會傳遞一個filterChain對象進來,filterChain對象是filter接口中最重要的一個對 象,它也提供了一個doFilter方法,開發人員可以根據需求決定是否調用此方法,調用該方法,則web服務器就會調用web資源的service 法,即web資源就會被訪問,否則web資源不會被訪問。

參考博客:https://www.cnblogs.com/xdp-gacl/p/3948353.html

理解:實現Filter接口,實現dofilter方法,在doFilter方法中加入業務邏輯,在web.xml中用<filter></filter>標籤注入Filter,在<filter-mapping>標籤中注入攔截請求。其中,關於filter鏈的部分:filterchain會記錄服務器中攔截器的註冊順序和數量,在調用dofilter的時候會檢查chain中是否還有過濾器,有就按順序調用,沒有就訪問資源。在映射過濾器時,可以攔截的有

<url-pattern>設置 filter 所攔截的請求路徑(過濾器關聯的URL樣式)
  <servlet-name>指定過濾器所攔截的Servlet名稱。
  <dispatcher>指定過濾器所攔截的資源被 Servlet 容器調用的方式,可以是REQUEST,INCLUDE,FORWARDERROR之一,默認REQUEST

 下面是關於攔截器、過濾器的層次:將在下一篇中學習:攔截器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章