Filter 過濾器(筆記)

2021-10-10 06:18:20 字數 2292 閱讀 3822

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

過濾器的作用:一般用於完成通用的操作。如:登入驗證、統一編碼處理、敏感字元的過濾

編寫過濾器的步驟:

定義乙個類,實現介面filter

複寫方法

配置攔截路徑

配置攔截路徑的兩種方法:

web.xml註解

基本**:

@webfilter

("/*"

)//訪問所有資源之前,都會執行該過濾器

public

class

filterdemo1

implements

filter

public

void

dofilter

(servletrequest req, servletresponse resp, filterchain chain)

throws servletexception, ioexception

public

void

init

(filterconfig config)

throws servletexception

}

過濾器細節:

web.xml配置

filterdemo1<

/filter-name>

class

>org.ccit.web.filter.filterdemo1<

/filter-

class

>

<

/filter>

filterdemo1<

/filter-name>

<

!-- 攔截路徑 --

>

/*

過濾器執行流程

執行過濾器

執行放行後的資源

回來執行過濾器放行**下邊的**

public

void

dofilter

(servletrequest req, servletresponse resp, filterchain chain)

throws servletexception, ioexception

過濾器生命週期方法

init:伺服器啟動後,會建立filter物件,然後呼叫init方法。只執行一次,用於載入資源

dofilter:每一次請求被攔截資源時,會執行。執行多次

destroy:在伺服器關閉後,filter物件被銷毀。如果伺服器是正常關閉,則會執行destroy方法。只執行一次,用於釋放資源

@webfilter

("/*"

)public

class

filterdemo3

implements

filter

//每一次請求被攔截資源時,會執行。執行多次

public

void

dofilter

(servletrequest req, servletresponse resp, filterchain chain)

throws servletexception, ioexception

//伺服器啟動後,會建立filter物件,然後呼叫init方法。只執行一次,用於載入資源

public

void

init

(filterconfig config)

throws servletexception

}

過濾器配置
攔截路徑配置:

1. 具體資源路徑:`/index.jsp` 只有訪問index.jsp資源時,過濾器才會被執行

2. 攔截目錄:`/user/*` 訪問/user下的所有資源時,過濾器都會被執行

3. 字尾名攔截:`*.jsp` 訪問所有字尾名為jsp資源時,過濾器都會被執行

4. 攔截所有資源:`/*` 訪問所有資源時,過濾器都會被執行

攔截方式配置:資源被訪問的方式

註解配置:

設定dispatchertypes屬性

1. request:預設值。瀏覽器直接請求資源

2. forward:**訪問資源

3. include:包含訪問資源

4. error:錯誤跳轉資源

5. async:非同步訪問資源

web.xml配置

設定``標籤即可

過濾器鏈(配置多個過濾器)

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)實現

花了2天時間,實現了過濾器功能,針對資料進行篩選,包含以下7個過濾器 date currency number tolowercase touppercase orderby filter 其中前5個針對資料格式轉換,orderby 和 filter 針對陣列過濾。orderby 支援多個屬性 a ...