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

