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 ...