小編給大家分享一下Filter的作用是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)公司成立于2013年,先為南岔等服務(wù)建站,南岔等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為南岔企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
JavaWeb有三大組件,Servlet、Listener、Filter。本文將介紹Filter,主要從用處、種類、使用方法等進(jìn)行介紹。
Filter可以認(rèn)為是Servlet的一種“加強(qiáng)版”。使用Filter完整的流程是:Filter對(duì)用戶請(qǐng)求進(jìn)行預(yù)處理,接著將請(qǐng)求交給Servlet進(jìn)行處理并生成響應(yīng),最后Filter再對(duì)服務(wù)器響應(yīng)進(jìn)行后處理。
在HttpServletRequest到達(dá)Servlet之前,攔截客戶的HttpServletRequest;根據(jù)需要檢查HttpServletRequest,也可以修改HttpServletRequest頭和數(shù)據(jù);在HttpServletResponse到達(dá)客戶端之前,攔截HttpServletResponse;根據(jù)需要檢查HttpServletResponse,也可以修改HttpServletResponse頭和數(shù)據(jù)。二、種類用戶授權(quán)的Filter:Filter負(fù)責(zé)檢查用戶請(qǐng)求,根據(jù)請(qǐng)求過(guò)濾用戶非法請(qǐng)求(比如對(duì)用戶登錄狀態(tài)進(jìn)行判定);日志Filter:詳細(xì)記錄某些特殊的用戶請(qǐng)求;負(fù)責(zé)解碼的Filter:包括對(duì)非標(biāo)準(zhǔn)編碼的請(qǐng)求解碼;能改變XML內(nèi)容的XSLTFilter等;Filter可負(fù)責(zé)攔截多個(gè)請(qǐng)求或響應(yīng);一個(gè)請(qǐng)求或響應(yīng)也可被多個(gè)Filter攔截。三、使用方法3.1創(chuàng)建Filter步驟
1)創(chuàng)建Filter處理類;2)web.xml文件中配置Filter,或通過(guò)注解的方式配置。(順便說(shuō)一下,三大組件都需要在web.xml中進(jìn)行配置)
創(chuàng)建Filter類
創(chuàng)建Filter類必須實(shí)現(xiàn)Filter接口,F(xiàn)ilter接口中包含三個(gè)方法:
voidinit(FilterConfigconfig):用于完成Filter的初始化;voiddestroy():用于Filter銷毀前,完成某些資源的回收;voiddoFilter(ServletRequestsrq,ServletResponsesrp,FilterChainchain):實(shí)現(xiàn)過(guò)濾功能,該方法就是對(duì)每個(gè)請(qǐng)求及響應(yīng)增加的額外處理。
doFilter()方法,在該方法中可實(shí)現(xiàn)對(duì)用戶請(qǐng)求進(jìn)行預(yù)處理,也可實(shí)現(xiàn)對(duì)服務(wù)器響應(yīng)進(jìn)行后處理,分界線就是是否調(diào)用了chain.doFiler(),調(diào)用之前是請(qǐng)求預(yù)處理,調(diào)用之后是響應(yīng)后處理。這是因?yàn)椋瑆eb服務(wù)器會(huì)檢查FilterChain對(duì)象中是否還有Filter,如果有,則調(diào)用下一個(gè)Filter,沒(méi)有,則調(diào)用目標(biāo)資源。
配置Filter
與配置Servlet相似,配置Filter,需要配置兩個(gè)部分:1)配置Filter名;2)配置Filter攔截URL模式與Servlet的區(qū)別在于:Servlet通常只配置一個(gè)URL,而Filter可以同時(shí)攔截多個(gè)請(qǐng)求的URL。因此,在配置Filter的URL模式時(shí)通常會(huì)使用模式字符串,使得Filter可以攔截多個(gè)請(qǐng)求。配置的方式有兩種:在Filter類中通過(guò)注解進(jìn)行配置,在web.xml文件中進(jìn)行配置。
web.xml中進(jìn)行配置logfilter.LogFilterlog
Filter里doFilter()方法里的代碼就是從多個(gè)Servlet的service()方法里抽出的通用代碼。通過(guò)使用Filter可以實(shí)現(xiàn)更好的代碼復(fù)用。
以上是“Filter的作用是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站標(biāo)題:Filter的作用是什么
當(dāng)前網(wǎng)址:http://www.chinadenli.net/article46/joichg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站收錄、標(biāo)簽優(yōu)化、動(dòng)態(tài)網(wǎng)站、微信公眾號(hào)、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)