1. Servlet過濾器基礎 Servlet過濾器是Servlet的一種特殊用法,主要用來完成一些通用的操作。比如編碼的過濾,判斷用戶的登陸狀態等等。Servlet過濾器的適用場合: A.認證過濾 B.登錄和審覈過濾 C.圖像轉換過濾 D.數據壓縮過濾 E.加密過濾 F.令牌過濾 G.資源訪問觸發事件過濾 Servlet過濾器接口的構成: 所有的Servlet過濾器類都必須實現javax.servlet.Filter接口。這個接口含有3個過濾器類必須實現的方法: 方法 說明 init(FilterConfig cfg) 這是Servlet過濾器的初始化方法,性質等同與servlet的init方法。 doFilter(ServletRequest,ServletResponse,FilterChain) 完成實際的過濾操作,當請求訪問過濾器關聯的URL時,Servlet容器將先調用過濾器的doFilter方法。FilterChain參數用於訪問後續過濾器 destroy() Servlet容器在銷燬過濾器實例前調用該方法,這個方法中可以釋放Servlet過濾器佔用的資源。,性質等同與servlet的destory()方法。 Servlet過濾器的創建步驟: A.實現javax.servlet.Filter接口的servlet類 B.實現init方法,讀取過濾器的初始化函數 C.實現doFilter方法,完成對請求或過濾的響應 D.調用FilterChain接口對象的doFilter方法,向後續的過濾器傳遞請求或響應 F.在web.xml中配置Filter 2.使用過濾器處理中文問題 當用用戶登陸頁面輸入帳號時,如果輸入是中文,後臺servlet再次輸出這個內容時,可能就會是亂碼,這是因爲serlvet中默認是以ISO-8859-1格式編碼的,如果後臺有多個Servlet,多個參數,這樣就不合適,這個問題,我們可以通過一個過濾器統一解決,使後臺的輸出輸出都支持中文!將ISO-8859-1轉碼爲GBK的那段代碼! 3.使用過濾器認證用戶: 每個過濾器也可以配置初始化參數,可以將不需要過濾的地址配置到這個Filter的配置參數中,過濾時,如果請求地址在配置參數中,則放行,這樣就避免了在程序中硬編碼。每個Filter中初始化時,都可以得到配置對象,在Filter中配置二個不需要過濾的地址,一個是登陸頁面,一個是執行登陸認證的servlet; ====華麗的分割線==== 上面是理論知識 下面是實踐寫法 Filter中的三個方法其實只寫doFilter方法,另外兩個直接由父類實現即可。 下面給出doFilter方法覆蓋例子: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //執行servlet處理請求響應前需要做的代碼 chain.doFilter(request, response); //執行servlet處理請求響應後要做的代碼 }
jsp過濾器的三個方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
京東二面:爲什麼Netty要造FastThreadLocal?
Java中文社羣
2024-05-28 14:33:04
微信小程序預約視頻號直播
麥豇豆
2024-05-28 14:22:23
公衆號5月C#/.NET熱文一覽
追逐時光
2024-05-28 14:22:13
Spring Boot 3.3 正式發佈,王炸級更新,應用啓動速度直接起飛!
Java技術棧
2024-05-28 14:21:32
公司剛入職了一名 Java 中級開發,短短 4 行代碼居然湊齊了 3 個 bug!我哭了~~
Java技術棧
2024-05-28 14:21:32
徹底搞清楚vue3的defineExpose宏函數是如何暴露方法給父組件使用
你假裝沒察覺
2024-05-28 14:21:21
🔥 FolkMQ v1.5.1 發佈(“新式” 國產消息中間件)
劉之西東
2024-05-28 14:21:21
盟軍敢死隊2官網
http://www.mj141319.imotor.com/index.php 裏面有盟軍敢死隊2 五百多關的下載. 需要一個一個安裝.
張博的博客
2024-05-28 14:20:01
記一次 .NET某工控WPF程序被人惡搞的 卡死分析
一線碼農
2024-05-28 14:15:51
《最新出爐》系列入門篇-Python+Playwright自動化測試-48-Route類攔截修改請求-上篇
北京-宏哥
2024-05-28 14:14:40
使用阿里雲oss,同一個域名前端實現通過路徑區分來訪問多個不同的項目
馬昌偉
2024-05-28 14:14:00