Java中的Filter過濾器詳解

Java中的Filter過濾器詳解

ID:40557018

大小:77.21 KB

頁數(shù):12頁

時(shí)間:2019-08-04

Java中的Filter過濾器詳解_第1頁
Java中的Filter過濾器詳解_第2頁
Java中的Filter過濾器詳解_第3頁
Java中的Filter過濾器詳解_第4頁
Java中的Filter過濾器詳解_第5頁
資源描述:

《Java中的Filter過濾器詳解》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、Java中的Filter過濾器詳解Filter也稱之為過濾器,它是Servlet技術(shù)中最實(shí)用的技術(shù),WEB開發(fā)人員通過Filter技術(shù),對(duì)web服務(wù)器管理的所有web資源:例如Jsp,Servlet,靜態(tài)圖片文件或靜態(tài)html文件等進(jìn)行攔截,從而實(shí)現(xiàn)一些特殊的功能。作者:李天煒來源:李天煒

2、2016-12-0709:56?收藏??分享?Filter簡介Filter也稱之為過濾器,它是Servlet技術(shù)中最實(shí)用的技術(shù),WEB開發(fā)人員通過Filter技術(shù),對(duì)web服務(wù)器管理的所有web資源:例如Jsp,Servlet,靜態(tài)圖片

3、文件或靜態(tài)html文件等進(jìn)行攔截,從而實(shí)現(xiàn)一些特殊的功能。例如實(shí)現(xiàn)URL級(jí)別的權(quán)限訪問控制、過濾敏感詞匯、壓縮響應(yīng)信息等一些高級(jí)功能。它主要用于對(duì)用戶請(qǐng)求進(jìn)行預(yù)處理,也可以對(duì)HttpServletResponse進(jìn)行后處理。使用Filter的完整流程:Filter對(duì)用戶請(qǐng)求進(jìn)行預(yù)處理,接著將請(qǐng)求交給Servlet進(jìn)行處理并生成響應(yīng),最后Filter再對(duì)服務(wù)器響應(yīng)進(jìn)行后處理。Filter功能·在HttpServletRequest到達(dá)Servlet之前,攔截客戶的HttpServletRequest。根據(jù)需要檢查HttpSe

4、rvletRequest,也可以修改HttpServletRequest頭和數(shù)據(jù)?!ぴ贖ttpServletResponse到達(dá)客戶端之前,攔截HttpServletResponse。根據(jù)需要檢查HttpServletResponse,也可以修改HttpServletResponse頭和數(shù)據(jù)。如何借助Filter實(shí)現(xiàn)攔截功能Filter接口中有一個(gè)doFilter方法,當(dāng)開發(fā)人員編寫好Filter,并配置對(duì)哪個(gè)web資源進(jìn)行攔截后,WEB服務(wù)器每次在調(diào)用web資源的service方法之前,都會(huì)先調(diào)用一下filter的doF

5、ilter方法,因此,在該方法內(nèi)編寫代碼可達(dá)到如下目的:·調(diào)用目標(biāo)資源之前,讓一段代碼執(zhí)行?!な欠裾{(diào)用目標(biāo)資源(即是否讓用戶訪問web資源)。web服務(wù)器在調(diào)用doFilter方法時(shí),會(huì)傳遞一個(gè)filterChain對(duì)象進(jìn)來,filterChain對(duì)象是filter接口中最重要的一個(gè)對(duì)象,它也提供了一個(gè)doFilter方法,開發(fā)人員可以根據(jù)需求決定是否調(diào)用此方法,調(diào)用該方法,則web服務(wù)器就會(huì)調(diào)用web資源的service方法,即web資源就會(huì)被訪問,否則web資源不會(huì)被訪問。Filter開發(fā)兩步走1.編寫java類實(shí)現(xiàn)F

6、ilter接口,并實(shí)現(xiàn)其doFilter方法。2.在web.xml文件中使用和元素對(duì)編寫的filter類進(jìn)行注冊(cè),并設(shè)置它所能攔截的資源。web.xml配置各節(jié)點(diǎn)介紹:·指定一個(gè)過濾器。o用于為過濾器指定一個(gè)名字,該元素的內(nèi)容不能為空。o元素用于指定過濾器的完整的限定類名。o元素用于為過濾器指定初始化參數(shù),它的子元素指定參數(shù)的名字,指定參數(shù)的值。o在過濾器中,可以使用FilterC

7、onfig接口對(duì)象來訪問初始化參數(shù)?!?filter-mapping>元素用于設(shè)置一個(gè)Filter所負(fù)責(zé)攔截的資源。一個(gè)Filter攔截的資源可通過兩種方式來指定:Servlet名稱和資源訪問的請(qǐng)求路徑o子元素用于設(shè)置filter的注冊(cè)名稱。該值必須是在元素中聲明過的過濾器的名字o設(shè)置filter所攔截的請(qǐng)求路徑(過濾器關(guān)聯(lián)的URL樣式)·指定過濾器所攔截的Servlet名稱?!?dispatcher>指定過濾器所攔截的資源被S

8、ervlet容器調(diào)用的方式,可以是REQUEST,INCLUDE,FORWARD和ERROR之一,默認(rèn)REQUEST。用戶可以設(shè)置多個(gè)子元素用來指定Filter對(duì)資源的多種調(diào)用方式進(jìn)行攔截?!?dispatcher>子元素可以設(shè)置的值及其意義oREQUEST:當(dāng)用戶直接訪問頁面時(shí),Web容器將會(huì)調(diào)用過濾器。如果目標(biāo)資源是通過RequestDispatcher的include()或forward()方法訪問時(shí),那么該過濾器就不會(huì)被調(diào)用。oINCLUDE:如果目標(biāo)資源是通過RequestDispatch

9、er的include()方法訪問時(shí),那么該過濾器將被調(diào)用。除此之外,該過濾器不會(huì)被調(diào)用。oFORWARD:如果目標(biāo)資源是通過RequestDispatcher的forward()方法訪問時(shí),那么該過濾器將被調(diào)用,除此之外,該過濾器不會(huì)被調(diào)用。oERROR:如果目標(biāo)資源是通過聲明式異常處理機(jī)制調(diào)用時(shí),那么

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。