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