Filter開發(fā)(選講)_第1頁
Filter開發(fā)(選講)_第2頁
Filter開發(fā)(選講)_第3頁
Filter開發(fā)(選講)_第4頁
Filter開發(fā)(選講)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、第三部分(續(xù))第三部分(續(xù))Filter開發(fā)開發(fā)內(nèi)容:內(nèi)容: (1)Filter的定義和作用的定義和作用 (2)配置)配置Filter (3)Filter的生命周期,的生命周期, (4)一些常用的)一些常用的Filter,如非法文字過濾器、字符編碼,如非法文字過濾器、字符編碼過濾器以及過濾器以及登錄驗證過濾器。登錄驗證過濾器。目標(biāo):目標(biāo):l 熟練掌握如何定義并配置熟練掌握如何定義并配置Filterl 理解理解Filter的生命周期的生命周期l 熟練掌握如何添加非法文字過濾器熟練掌握如何添加非法文字過濾器l 熟練掌握如何添加字符編碼過濾器熟練掌握如何添加字符編碼過濾器l 熟練掌握如何添加登錄驗證

2、過濾器熟練掌握如何添加登錄驗證過濾器11.1.1 Filter簡介簡介Filter的中文譯名為過濾器過濾器。從字面名稱就可以看出來Filter是用來進行過濾的。借助于過濾器可以實現(xiàn)如下功能。(1)過濾非法文字和信息。)過濾非法文字和信息。(2)設(shè)置統(tǒng)一字符編碼。)設(shè)置統(tǒng)一字符編碼。(3)對用戶進行登錄驗證。)對用戶進行登錄驗證。(4)改變圖片文件格式。)改變圖片文件格式。(5)對相應(yīng)做壓縮處理。)對相應(yīng)做壓縮處理。(6)對)對XML的輸出使用的輸出使用XSLT來進行轉(zhuǎn)換。來進行轉(zhuǎn)換。 在Servlet 2.3之后,如果要添加Filter只需在web.xml中配置相關(guān)設(shè)定即可。可以非常方便的為W

3、eb項目添加新的Filter和修改現(xiàn)有的Filter,而不需要修改原有的Servlet、JSP以及其他靜態(tài)頁面文件。11.1.2 第一個第一個Filter程序程序 Filter同同Servlet類似同樣也是一個類似同樣也是一個Java類類,所以其添加,所以其添加方式和普通的方式和普通的Java類完全相同。類完全相同。自定義的自定義的Filter類必須實現(xiàn)類必須實現(xiàn)Filter接口,還必須實現(xiàn)接口,還必須實現(xiàn)Filter接口中定義的接口中定義的init()方法、方法、doFilter()方法和方法和destroy()方法方法。 其中其中init()方法和方法和destroy()方法分別用來初始化

4、和銷毀時方法分別用來初始化和銷毀時調(diào)用。調(diào)用。doFilter()方法用來實現(xiàn)過濾,所有的處理代碼都放置方法用來實現(xiàn)過濾,所有的處理代碼都放置在該方法中。在該方法中。 doFilter()方法接受三個參數(shù),分別是方法接受三個參數(shù),分別是request、response和和chain。其中其中request和和response用來傳遞給下用來傳遞給下一個一個Filter(如果有多個(如果有多個Filter)或者)或者JSP和和Servlet。chain則通過調(diào)用其則通過調(diào)用其doFilter方法來調(diào)用下一個方法來調(diào)用下一個Filter,獲得調(diào)用原,獲得調(diào)用原始的始的JSP或者或者Servlet等

5、其他內(nèi)容。等其他內(nèi)容。示例代碼 FirstFilter.java11.1.3 Filter生命周期生命周期 Filter同同Servlet類似也具有生命周期。類似也具有生命周期。Filter從生成到銷毀從生成到銷毀必須進過如下幾個步驟。必須進過如下幾個步驟。(1)生成)生成Filter,并通過調(diào)用其,并通過調(diào)用其init()方法來進行初始化。方法來進行初始化。(2)過濾用戶請求,調(diào)用其)過濾用戶請求,調(diào)用其doFilter()方法。方法。(3)調(diào)用)調(diào)用destroy()方法進行銷毀,并通過垃圾收集器進行收方法進行銷毀,并通過垃圾收集器進行收集清理。集清理。注意:注意:信息在服務(wù)器中顯示,不會

6、出現(xiàn)在網(wǎng)頁中,隨著服務(wù)器啟動信息在服務(wù)器中顯示,不會出現(xiàn)在網(wǎng)頁中,隨著服務(wù)器啟動filter服務(wù),如果用戶的請求同服務(wù),如果用戶的請求同中的目錄相同,中的目錄相同,就會被過濾就會被過濾示例代碼 MyFilter.java11.2 常用常用Filter 本節(jié)將介紹一些常用的Filter,如非法文字過濾器、字符編碼過濾器、登錄驗證器。 11.2.1 非法文字過濾器非法文字過濾器 實現(xiàn)非法文字過濾器非常簡單,首先通過Filter類中doFilter()方法的request參數(shù)來獲得客戶端的輸入。然后通過對輸出的文字進行判斷并進行處理,如替換該非法文字或者提示輸出非法文字要求重新輸出等等。最后通過ch

7、ain的doFilter方法來調(diào)用下一個Filter,獲得調(diào)用原始的JSP或者Servlet等其他內(nèi)容。示例代碼 CharFilter.java11.2.2 字符編碼過濾器字符編碼過濾器 可以通過可以通過Filter來定義一個字符編碼過濾器,這時就不需要來定義一個字符編碼過濾器,這時就不需要在每個在每個JSP頁面中添加設(shè)置參數(shù)字符編碼格式代碼了。頁面中添加設(shè)置參數(shù)字符編碼格式代碼了。示例代碼 CharacterFilter.java11.2.3 登錄驗證過濾器登錄驗證過濾器 可以通過可以通過Filter來定義一個登錄驗證過濾器,這時就不需要來定義一個登錄驗證過濾器,這時就不需要在每個在每個JSP頁面中添加判斷用戶合法性代碼了。頁面中添加判斷用戶合法性代碼了。示例代碼 LoginFilter.java11.3 綜合練習(xí)綜合練習(xí) 下面來創(chuàng)建一個下面來創(chuàng)建一個IP過濾過濾Filter。當(dāng)一個用戶發(fā)出訪問請求的。當(dāng)一個用戶發(fā)出訪問請求的時候,首先通過過濾器進行判斷,如果用戶的時候,首先通過過濾器進行判斷,如果用戶的IP地址被限制,地址被限制,就禁止訪問,只有合法的就禁止訪問,只有合法的IP才可以繼續(xù)訪問才可以繼續(xù)訪問。11.4 小結(jié)小結(jié) 過濾器是Java Web開發(fā)中的一個重點,一些常用的框架,如Stru

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論