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