詳解Servlet之過濾器(Filter)
過濾器
1.為什么使用它?
有很多全站性的東西需要處理,例如亂碼問題,通過過濾器統(tǒng)一進行過濾更簡單
2.有什么用?
實現(xiàn)用戶在訪問某個目標資源之前,對訪問的請求和響應(yīng)進行攔截。簡單說,就是可以實現(xiàn)web容器對某資源的訪問前截獲進行相關(guān)的處理,還可以在某資源向web容器返回響應(yīng)前進行截獲進行處理。
3.怎么用?
步驟1:先寫一個類實現(xiàn)javax.servlet.Filter接口
步驟2:重寫抽象方法
步驟3:在doFilter()方法中寫處理代碼,最后用FilterChain調(diào)用FilterChain.doFilter(req, resp)方法,表示可以執(zhí)行后面的攔截器(如果有的話)
步驟3:進行配置,web.xml配置如下
<!-- 優(yōu)先配置過濾器 ,過濾器應(yīng)該在Servlet前面配置,并且過濾器之間有順序 --> <filter> <filter-name>firstfilter</filter-name> <filter-class>cn.hk.filter.FirstFilter</filter-class> </filter> <filter-mapping> <filter-name>firstfilter</filter-name> <!-- 攔截訪問資源 *表示攔截所以資源 --> <url-pattern>/*</url-pattern> </filter-mapping>
4運用的場景?
1)實現(xiàn)URL級別的權(quán)限訪問控制;
2)處理全站中文亂碼問題;
3)實現(xiàn)自動登錄;
4)過濾敏感詞匯;
5) 壓縮網(wǎng)頁;
6)選擇性讓瀏覽器緩存;等等。
這幾種功能的實現(xiàn)采用同樣的原理,那就是使用包裝模式或動態(tài)代理增強request或response對象的功能。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
dubbo將異常轉(zhuǎn)換成RuntimeException的原因分析?ExceptionFilter
這篇文章主要介紹了dubbo將異常轉(zhuǎn)換成RuntimeException的原因分析?ExceptionFilter問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
Java實現(xiàn)同步枚舉類數(shù)據(jù)到數(shù)據(jù)庫
這篇文章主要為大家詳細介紹了Java實現(xiàn)同步枚舉類數(shù)據(jù)到數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08
Java結(jié)構(gòu)型設(shè)計模式之橋接模式詳細講解
橋接,顧名思義,就是用來連接兩個部分,使得兩個部分可以互相通訊。橋接模式將系統(tǒng)的抽象部分與實現(xiàn)部分分離解耦,使他們可以獨立的變化。本文通過示例詳細介紹了橋接模式的原理與使用,需要的可以參考一下2022-09-09

