最近學習到了servlet過濾器,記錄一下過濾器不是必須將請求傳送到下乙個過濾器(或web資源),也可以自己來處理請求,傳送響應由tomcat管理其生命週期,且filter比servlet先載入init()方法用於初始化filterdofilter()作用和service()方法類似,是過濾請求和響應的主要方法。
destroy()用於在filter物件被銷毀前做一些收尾工作。如:釋放資源等。
即:構造器(例項化):建立filter例項是呼叫,filter例項伺服器一旦啟動就會被建立
初始化:例項化之後緊接著初始化,伺服器啟動的過程中只執行一次
執行過濾:只要是需要進行過濾的請求,都會執行此方法
銷毀:伺服器關閉時銷毀
一、filter介面,實現filter需要實現該介面
init()方法用於初始化filter
dofilter()作用和service()方法類似,是過濾請求和響應的主要方法。
destroy()用於在filter物件被銷毀前做一些收尾工作。如:釋放資源等。
二、filterconfig物件在伺服器呼叫init()方法時傳遞進來
getfiltername() 獲取filter的名字
getinitparameter() 獲取filter的初始化引數
getinitparameternames() 獲取所有初始化引數的名字
三、filterchain物件是在dofilter()方法被呼叫時作為引數傳遞進來的。
dofilter()方法用於呼叫filter鏈上的下乙個過濾器,如果當前過濾器為最後乙個過濾器則將請求傳送到目標資源。
public class firstfilter implements filter
@override
public void dofilter(servletrequest servletrequest, servletresponse servletresponse, filterchain filterchain) throws ioexception, servletexception
在過濾器中,執行過濾的方法dofilter(),其中就是對當前請求的過濾過程,因此一定要在需要放行時使用chain.dofilter()實現放行功能firstfilter
com.atguigu.filter.firstfilter
/*
filter-name 指定的是過濾器的名字方式二:在idea建立時勾選註解filter-class 指定的是過濾器的全類名
url-pattern 指定的是需要過濾器處理的請求位址,
/
為當前工程下,* 為所有資源在idea中建立filter
1、精確匹配:在url-pattern中設定某個資源的完整路徑,此時過濾器就會對路徑指定的資源進行過濾
2、路徑匹配(通用匹配):在url-pattern中使用*表示所有資源/test/test.jsp
/index.jsp
3、字尾匹配:在url-pattern中使用" *.字尾名 "表示只能對某種字尾的資源進行過濾/*
/test/*
以上三種過濾規則不能混合使用,但是乙個filter可以有多個url-pattern業務場景:使用者需要登入才能對購物車中的商品進行結賬,需要通過filter進行請求過濾,當session儲存有使用者資訊,才會對該請求放行。1、封裝了原始的filter,因為只需要關注dofilter()內的業務邏輯,不需要關注filter的初始化、銷毀。同時轉換servletrequest、servletresponse —>httpservletrequest、httpservletresponse}2、繼承httpfilter ,只需要在dofilter內寫業務邏輯
Filter過濾器介紹
定義乙個類讓其實現filter介面 在dofilter 方法中加入相應的攔截 加入了相應的攔截 之後需要使用chain.dofilter req,resp 讓請求繼續走 在web.xml中進行配置 testfilterfilter name org.itat.filter.myfilterfilte...
過濾器 Filter 模式
過濾器模式也是一種結構型模式,它允許我們使用不同的規則過濾某一組物件。首先建立乙個實體類person,分別擁有年齡 性別 位址三個屬性,用於相親,嘿嘿。public class person public void setage int age public string get public vo...
Filter 過濾器(筆記)
web中的過濾器 當訪問伺服器的資源時,過濾器可以將請求攔截下來,完成一些特殊的操作。過濾器的作用 一般用於完成通用的操作。如 登入驗證 統一編碼處理 敏感字元的過濾 編寫過濾器的步驟 定義乙個類,實現介面filter 複寫方法 配置攔截路徑 配置攔截路徑的兩種方法 web.xml註解 基本 web...