Java基礎(chǔ)之Filter的實(shí)例詳解
Java基礎(chǔ)之Filter的實(shí)例詳解
定義: Filter,是Servlet的一種,接口類為javax.servlet.Filter,以一種模塊化或者可重用的方法封裝公共行為,本質(zhì)是可復(fù)用的代碼片段。
職責(zé):在請(qǐng)求到達(dá)Servlet之前對(duì)請(qǐng)求頭作預(yù)處理,或者在服務(wù)器響應(yīng)完成之后對(duì)響應(yīng)內(nèi)容作后處理。分界線為chain.doFilter的調(diào)用。該調(diào)用是將請(qǐng)求處理權(quán)交給其Filter列表鏈上的其它Filter。
生命周期: Filter在Web容器啟動(dòng)時(shí)被容器實(shí)例化,并調(diào)用其init方法完成初始化,每一個(gè)請(qǐng)求到達(dá)Servlet之前先經(jīng)過(guò)Filter的doFilter方法,容器停止時(shí)調(diào)用destroy方法。生命周期與Servlet類似。
常見應(yīng)用:權(quán)限校驗(yàn)、特殊日志、修改請(qǐng)求信息(如中文亂碼處理)
web.xml中配置Filter的url-pattern
1)/*和*過(guò)濾效果一樣,可以對(duì)所有的請(qǐng)求進(jìn)行過(guò)濾
2)*.xxx后綴過(guò)濾
3)/這種配置過(guò)濾不了任何請(qǐng)求:tomcate的matchFilterUrl方法可以解釋過(guò)濾原理。
Filter的url-pattern與Servlet的url-pattern前兩種用法一樣,但第三種不一樣,對(duì)Servlet來(lái)說(shuō)配置url-pattern為/說(shuō)明將該Servlet作為項(xiàng)目的默認(rèn)的Servlet,當(dāng)某個(gè)請(qǐng)求路徑無(wú)法匹配時(shí)會(huì)由默認(rèn)Servlet來(lái)處理該請(qǐng)求。而Filter,則對(duì)/的urlpattern,攔截不到任何請(qǐng)求的。
在web.xml中,容器啟動(dòng)時(shí)加載的順序是context-param,其次是Listener,然后是Filter,最后是Servlet。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Java中的FilterOutputStream 簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- JavaWeb之Filter過(guò)濾器詳解
- Java Filter 過(guò)濾器詳細(xì)介紹及實(shí)例代碼
- java 過(guò)濾器模式(Filter/Criteria Pattern)詳細(xì)介紹
- java 過(guò)濾器filter防sql注入的實(shí)現(xiàn)代碼
- Java中FilterInputStream和FilterOutputStream的用法詳解
- JavaEE Filter敏感詞過(guò)濾的方法實(shí)例詳解
- javaweb中Filter(過(guò)濾器)的常見應(yīng)用
相關(guān)文章
Mybatis Trim標(biāo)簽用法簡(jiǎn)單介紹
這篇文章主要介紹了Mybatis Trim標(biāo)簽用法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-05-05mybatis spring配置SqlSessionTemplate的使用方式
這篇文章主要介紹了mybatis spring配置SqlSessionTemplate的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Java判斷2個(gè)List集合是否相等(不考慮元素的順序)
今天小編就為大家分享一篇關(guān)于Java判斷2個(gè)List集合是否相等(不考慮元素的順序)的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10解決springboot mapper注入報(bào)紅問題
這篇文章主要介紹了解決springboot mapper注入報(bào)紅問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11@ConfigurationProperties在IDEA中出現(xiàn)紅色波浪線問題解決方法
本文介紹了在Springboot項(xiàng)目中,當(dāng)@ConfigurationProperties注解出現(xiàn)紅色波浪線時(shí)的解決方法,文中有詳細(xì)的解決方案供大家參考,需要的朋友可以參考下2024-09-09Java 后端接收Request請(qǐng)求參數(shù)的多種方式匯總
本文給大家總結(jié)了后端接收Request請(qǐng)求參數(shù)的7種方式,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-10-10Java繪圖技術(shù)基礎(chǔ)(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇Java繪圖技術(shù)基礎(chǔ)(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08Springboot項(xiàng)目保存本地系統(tǒng)日志文件的實(shí)現(xiàn)方法
這篇文章主要介紹了Springboot項(xiàng)目保存本地系統(tǒng)日志文件的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04