-
對用戶請求進行驗證
編碼轉(zhuǎn)換
查看全部 -
servlet2.5的分類
查看全部 -
@WebFilter的常用屬性
查看全部 -
servlet3支持@WebFilter的注解形式
查看全部 -
多過濾器的處理流程
查看全部 -
過濾器不能處理用戶請求,但是可以改變請求路徑
查看全部 -
2.在web.xml中配置自動的filter
查看全部 -
自定義過濾器:實現(xiàn)javax.servlet.Filter接口,實現(xiàn)三個方法
查看全部 -
過濾器生命周期:
實例化在容器啟動時(一次)
初始化在實例化后(一次)
過濾在每一次請求
銷毀在容器關(guān)閉后(一次)
查看全部 -
過濾器的工作原理
查看全部 -
過濾器的概念:
應(yīng)用案例:同一個地址,登錄前和登錄后顯示不同頁面;
不存在的地址,統(tǒng)一處理到同一錯誤頁面。
查看全部 -
過濾器在實際項目中的應(yīng)用場景
1、對用戶請求進行統(tǒng)一認證(判斷當(dāng)前用戶是否符合認證條件,不符合時進行一些處理)——>登陸校驗
2、編碼轉(zhuǎn)換(轉(zhuǎn)換一些字符集編碼,防止開發(fā)中亂碼問題)
3、對用戶發(fā)送的數(shù)據(jù)進行過濾替換(防止注入一些攻擊,對參數(shù)進行檢測和判別)
4、轉(zhuǎn)換圖像格式(對response進行后處理,并轉(zhuǎn)換它的格式輸出)
5、對響應(yīng)的內(nèi)容進行壓縮(可以對內(nèi)容進行加密操作,數(shù)據(jù)拿過來時進行加密,加密之后解析再返回給用戶)
查看全部 -
編碼轉(zhuǎn)換案例
后端接受前端輸入的參數(shù)亂碼解決方式
【一】修改Tomcat字符集
【二】過濾器修改字符集(通常放在web.xml中的參數(shù)中)
【三】通過強制類型轉(zhuǎn)換
拓展:pageEncoding和contentType的區(qū)別:https://www.cnblogs.com/kevin-yuan/archive/2011/12/31/2308479.html。
查看全部 -
過濾器的分類2
ERROR:目標(biāo)資源是通過聲明式異常處理機制調(diào)用時,過濾器將被調(diào)用。(例如:我們訪問一個路徑,出現(xiàn)一個錯誤,系統(tǒng)會給出一個錯誤提示,我們可以通過它來實現(xiàn)人性化提示)
路徑找不到時,通過xml進行友好型提示。
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
ERROR的用途:發(fā)生錯誤時,系統(tǒng)記錄這個錯誤,并且通過<error-page>標(biāo)簽進行跳轉(zhuǎn)到錯誤頁面,通過ERROR過濾器程序員可以檢測這個錯誤的來源以及位置。
Servlet3.0——>添加了ASYNC:支持異步處理。(例如:有時我們的跳轉(zhuǎn)資源不是JSP頁面,而是一個Servlet處理業(yè)務(wù)邏輯,并且處理時間非常長,這時過濾器接下來的代碼就會一直等待Servlet完成,這樣就會一直等待,所以Servlet3.0支持無論執(zhí)行完與否,都會向下執(zhí)行。)
另一種實現(xiàn)過濾器功能的方式
@WebFilter:用于將一個類聲明為過濾器,該注解將會在部署時被容器處理,容器將根據(jù)具體的屬性配置將相應(yīng)的類部署為過濾器。
查看全部 -
過濾器的分類(Servlet2.5)
【1】REQUEST:默認的過濾器(我們配置過濾器默認選擇的),用戶直接訪問頁面時,Web容器將會調(diào)用過濾器,通過鏈接訪問直接到達過濾器。
重定向:會使用REQUEST過濾器,response.sendRedirect(request.getContextPath() + "/main.jsp");
轉(zhuǎn)發(fā):會使用RESPONSE過濾器,request.getRequestDispatcher("main.jsp").forward(request, response);
【2】FORWARD:目標(biāo)資源是通過RequestDispatcher的forward訪問時,該過濾器被調(diào)用。<dispatcher>FORWARD</dispatcher>
【3】INCLUDE:目標(biāo)資源時通過RequestDispatcher的include方法調(diào)用時,過濾器將被調(diào)用。<dispatcher>INCLUDE</dispatcher>
request.getRequestDispatcher("main.jsp").include(request, response);使用這個跳轉(zhuǎn)其他過濾器將不起作用,只有INCLUDE的過濾器會起作用。
【4】ERROR
查看全部
舉報