java_過濾器詳解

java_過濾器詳解

ID:14404856

大?。?0.71 KB

頁數(shù):9頁

時間:2018-07-28

java_過濾器詳解_第1頁
java_過濾器詳解_第2頁
java_過濾器詳解_第3頁
java_過濾器詳解_第4頁
java_過濾器詳解_第5頁
資源描述:

《java_過濾器詳解》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、Filter過濾器?1、簡介  Filter也稱之為過濾器,它是Servlet技術(shù)中最實用的技術(shù),WEB開發(fā)人員通過Filter技術(shù),對web服務(wù)器管理的所有web資源:例如Jsp,Servlet,靜態(tài)圖片文件或靜態(tài)html文件等進行攔截,從而實現(xiàn)一些特殊的功能。例如實現(xiàn)URL級別的權(quán)限訪問控制、過濾敏感詞匯、壓縮響應(yīng)信息等一些高級功能?! ∷饕糜趯τ脩粽埱筮M行預(yù)處理,也可以對HttpServletResponse進行后處理。使用Filter的完整流程:Filter對用戶請求進行預(yù)處理,接著將請求交給Servl

2、et進行處理并生成響應(yīng),最后Filter再對服務(wù)器響應(yīng)進行后處理?! ilter功能:·在HttpServletRequest到達Servlet之前,攔截客戶的HttpServletRequest。?根據(jù)需要檢查HttpServletRequest,也可以修改HttpServletRequest頭和數(shù)據(jù)?!ぴ贖ttpServletResponse到達客戶端之前,攔截HttpServletResponse。?根據(jù)需要檢查HttpServletResponse,也可以修改HttpServletResponse頭和數(shù)據(jù)

3、。2、如何實現(xiàn)攔截  Filter接口中有一個doFilter方法,當開發(fā)人員編寫好Filter,并配置對哪個web資源進行攔截后,WEB服務(wù)器每次在調(diào)用web資源的service方法之前,都會先調(diào)用一下filter的doFilter方法,因此,在該方法內(nèi)編寫代碼可達到如下目的:1.調(diào)用目標資源之前,讓一段代碼執(zhí)行。2.是否調(diào)用目標資源(即是否讓用戶訪問web資源)?! eb服務(wù)器在調(diào)用doFilter方法時,會傳遞一個filterChain對象進來,filterChain對象是filter接口中最重要的一個對象

4、,它也提供了一個doFilter方法,開發(fā)人員可以根據(jù)需求決定是否調(diào)用此方法,調(diào)用該方法,則web服務(wù)器就會調(diào)用web資源的service方法,即web資源就會被訪問,否則web資源不會被訪問。?3、Filter開發(fā)兩步走1.編寫java類實現(xiàn)Filter接口,并實現(xiàn)其doFilter方法。?2.在web.xml文件中使用元素對編寫的filter類進行注冊,并設(shè)置它所能攔截的資源。  web.xml配置各節(jié)點介紹:用于為過濾器指定一個名字,

5、該元素的內(nèi)容不能為空。元素用于指定過濾器的完整的限定類名。元素用于為過濾器指定初始化參數(shù),它的子元素指定參數(shù)的名字,指定參數(shù)的值。在過濾器中,可以使用FilterConfig接口對象來訪問初始化參數(shù)。元素用于設(shè)置一個Filter所負責攔截的資源。一個Filter攔截的資源可通過兩種方式來指定:Servlet名稱和資源訪問的請求路徑子元素用于設(shè)置filter的

6、注冊名稱。該值必須是在元素中聲明過的過濾器的名字設(shè)置filter所攔截的請求路徑(過濾器關(guān)聯(lián)的URL樣式)指定過濾器所攔截的Servlet名稱。指定過濾器所攔截的資源被Servlet容器調(diào)用的方式,可以是REQUEST,INCLUDE,FORWARD和ERROR之一,默認REQUEST。用戶可以設(shè)置多個子元素用來指定Filter對資源的多種調(diào)用方式進行攔截。子元素可以設(shè)置的值

7、及其意義:REQUEST:當用戶直接訪問頁面時,Web容器將會調(diào)用過濾器。如果目標資源是通過RequestDispatcher的include()或forward()方法訪問時,那么該過濾器就不會被調(diào)用。INCLUDE:如果目標資源是通過RequestDispatcher的include()方法訪問時,那么該過濾器將被調(diào)用。除此之外,該過濾器不會被調(diào)用。FORWARD:如果目標資源是通過RequestDispatcher的forward()方法訪問時,那么該過濾器將被調(diào)用,除此之外,該過濾器不會被調(diào)用。ERROR:

8、如果目標資源是通過聲明式異常處理機制調(diào)用時,那么該過濾器將被調(diào)用。除此之外,過濾器不會被調(diào)用。4、Filter鏈  在一個web應(yīng)用中,可以開發(fā)編寫多個Filter,這些Filter組合起來稱之為一個Filter鏈?! eb服務(wù)器根據(jù)Filter在web.xml文件中的注冊順序,決定先調(diào)用哪個Filter,當?shù)谝粋€Filter的doFilter方法被調(diào)用時

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

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

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