詳解Servlet之過(guò)濾器(Filter)
過(guò)濾器
1.為什么使用它?
有很多全站性的東西需要處理,例如亂碼問題,通過(guò)過(guò)濾器統(tǒng)一進(jìn)行過(guò)濾更簡(jiǎn)單
2.有什么用?
實(shí)現(xiàn)用戶在訪問某個(gè)目標(biāo)資源之前,對(duì)訪問的請(qǐng)求和響應(yīng)進(jìn)行攔截。簡(jiǎn)單說(shuō),就是可以實(shí)現(xiàn)web容器對(duì)某資源的訪問前截獲進(jìn)行相關(guān)的處理,還可以在某資源向web容器返回響應(yīng)前進(jìn)行截獲進(jìn)行處理。
3.怎么用?
步驟1:先寫一個(gè)類實(shí)現(xiàn)javax.servlet.Filter接口
步驟2:重寫抽象方法
步驟3:在doFilter()方法中寫處理代碼,最后用FilterChain調(diào)用FilterChain.doFilter(req, resp)方法,表示可以執(zhí)行后面的攔截器(如果有的話)
步驟3:進(jìn)行配置,web.xml配置如下
<!-- 優(yōu)先配置過(guò)濾器 ,過(guò)濾器應(yīng)該在Servlet前面配置,并且過(guò)濾器之間有順序 --> <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運(yùn)用的場(chǎng)景?
1)實(shí)現(xiàn)URL級(jí)別的權(quán)限訪問控制;
2)處理全站中文亂碼問題;
3)實(shí)現(xiàn)自動(dòng)登錄;
4)過(guò)濾敏感詞匯;
5) 壓縮網(wǎng)頁(yè);
6)選擇性讓瀏覽器緩存;等等。
這幾種功能的實(shí)現(xiàn)采用同樣的原理,那就是使用包裝模式或動(dòng)態(tài)代理增強(qiáng)request或response對(duì)象的功能。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
MybatisPlus:使用SQL保留字(關(guān)鍵字)的操作
這篇文章主要介紹了MybatisPlus:使用SQL保留字(關(guān)鍵字)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11如何利用Map與函數(shù)式接口來(lái)實(shí)現(xiàn)去除if else
這篇文章主要介紹了如何利用Map與函數(shù)式接口來(lái)實(shí)現(xiàn)去除if else問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07關(guān)于SpringBoot中controller參數(shù)校驗(yàn)的使用
本文主要介紹了關(guān)于SpringBoot中controller參數(shù)校驗(yàn)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Java中的ArrayList、LinkedList、HashSet等容器詳解
這篇文章主要介紹了Java中的ArrayList、LinkedList、HashSet等容器詳解,集合表示一組對(duì)象,稱為其元素,有些集合允許重復(fù)元素,而另一些則不允許,有些是有序的,有些是無(wú)序的,需要的朋友可以參考下2023-08-08springboot如何忽略接收請(qǐng)求中的參數(shù)
這篇文章主要介紹了springboot如何忽略接收請(qǐng)求中的參數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07關(guān)于@JsonProperty和@JSONField注解的區(qū)別及用法
這篇文章主要介紹了關(guān)于@JsonProperty和@JSONField注解的區(qū)別及用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08