(8)-02-過(guò)濾器創(chuàng)建與配置_第1頁(yè)
(8)-02-過(guò)濾器創(chuàng)建與配置_第2頁(yè)
(8)-02-過(guò)濾器創(chuàng)建與配置_第3頁(yè)
(8)-02-過(guò)濾器創(chuàng)建與配置_第4頁(yè)
(8)-02-過(guò)濾器創(chuàng)建與配置_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

過(guò)濾器創(chuàng)建與配置主要內(nèi)容過(guò)濾器基本結(jié)構(gòu)過(guò)濾器創(chuàng)建與配置引言了解了過(guò)濾器的3個(gè)核心接口(Filter、FilterChain、FilterConfig),就可以通過(guò)實(shí)現(xiàn)Filter接口來(lái)創(chuàng)建一個(gè)過(guò)濾器對(duì)象,其代碼結(jié)構(gòu)如下。過(guò)濾器代碼結(jié)構(gòu)publicclassMyFilterimplementsFilter{publicvoidinit(FilterConfigfilterConfig){...

}publicvoiddoFilter(ServletRequestrequest, ServletResponseresponse,FilterChainchain){ //傳遞給下一個(gè)過(guò)濾器 chain.doFilter(request,response);}publicvoiddestroy(){...

}}過(guò)濾器的創(chuàng)建在項(xiàng)目的src下,創(chuàng)建一個(gè)或多個(gè)過(guò)濾器,并采用包結(jié)構(gòu)的方式組織所有的過(guò)濾器。過(guò)濾器的創(chuàng)建過(guò)濾器的創(chuàng)建實(shí)現(xiàn)init()方法,讀取過(guò)濾器的初始化參數(shù)。實(shí)現(xiàn)doFilter(),完成該過(guò)濾器所需要的過(guò)濾功能。過(guò)濾器的創(chuàng)建調(diào)用FilterChain對(duì)象的doFilter()方法時(shí),下一個(gè)關(guān)聯(lián)的過(guò)濾器將被調(diào)用,若沒(méi)有其他與Servlet或JSP相關(guān)聯(lián)的過(guò)濾器,就調(diào)用Servlet或JSP本身。過(guò)濾器的配置在創(chuàng)建一個(gè)過(guò)濾器對(duì)象之后,需要對(duì)其進(jìn)行配置才可以使用。過(guò)濾器的配置方法與Servlet的配置方法相類似,可以通過(guò)注解或web.xml文件進(jìn)行配置。過(guò)濾器的配置@WebFilter("/*")使用配置文件web.xml中的<filter>和<filter-mapping>標(biāo)簽來(lái)實(shí)現(xiàn)。過(guò)濾器的配置<filter>標(biāo)簽聲明一個(gè)過(guò)濾器對(duì)象filter-name用于指定過(guò)濾器名稱,此名稱可以是自定義的名稱;filter-class用于指定過(guò)濾器對(duì)象的完整位置,包含過(guò)濾器對(duì)象的包名與類名;<filter>標(biāo)簽聲明一個(gè)過(guò)濾器對(duì)象init-param用于設(shè)置過(guò)濾器的初始化參數(shù),它包含兩個(gè)常用的子元素,分別為param-name和param-value。前者用于聲明過(guò)濾器參數(shù)的名稱,后者用于指定初始化參數(shù)的值<filter-mapping>映射過(guò)濾器在web.xml文件中聲明了過(guò)濾器對(duì)象后,需要映射訪問(wèn)過(guò)濾器的過(guò)濾的對(duì)象,此操作使用<filter-mapping>進(jìn)行配置。在這個(gè)標(biāo)簽中主要配置過(guò)濾器的名稱、過(guò)濾器關(guān)聯(lián)的URL等<filter-mapping>映射過(guò)濾器filter-name用于指定過(guò)濾器名稱,此名稱與<filter>標(biāo)簽中的filter-name相對(duì)應(yīng)。url-pattern用于指定過(guò)濾器關(guān)聯(lián)的URL,設(shè)置為/*,表示關(guān)聯(lián)所有URL。案例——字符編碼過(guò)濾器在Javaweb項(xiàng)目開(kāi)發(fā)中,過(guò)濾器的應(yīng)用十分廣泛,其中比較典型的應(yīng)用就是字符編碼過(guò)濾器。由于Java程序可以在多種平臺(tái)下運(yùn)行,其內(nèi)部使用Unicode字符集來(lái)表示字符,所以處理中文數(shù)據(jù)會(huì)產(chǎn)生亂碼的情況,需要對(duì)其進(jìn)行編碼轉(zhuǎn)換才可以正常顯示。案例實(shí)現(xiàn)在init()方法中讀取過(guò)濾器的初始化參數(shù),參數(shù)encoding為本例中所用的字符編碼;在doFilter()方法中,分別設(shè)置request和response對(duì)象編碼格式為讀取的編碼格式案例

溫馨提示

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

評(píng)論

0/150

提交評(píng)論