-
Filter的三個(gè)方法:
過濾器可以改變用戶請(qǐng)求的web資源,也就是說可以改變用戶請(qǐng)求的路勁
過濾器不能直接返回?cái)?shù)據(jù),不能直接處理用戶請(qǐng)求,它不是一個(gè)標(biāo)準(zhǔn)的servlet
/*中(*)代表任意值
紅色區(qū)域代表過濾器類的配置
<filter>...</filter>
綠色區(qū)域配置過濾器URL相關(guān)映射配置
<filter-mapping>...</filter-mapping>
URL是需要過濾的路徑
@JAVA過濾機(jī)制——第一個(gè)過濾器案例
1、創(chuàng)建一個(gè)過濾器類 ,繼承自servlet下的Filter
2、重寫三個(gè)方法init() doFilter() destroy()方法
? (1)init()初始化:這個(gè)方法可以讀取web.xml文件中的過濾器初始化參數(shù)。通過參數(shù)FilterConfig arg0可以獲取更多參數(shù)
? (2)doFIlter()核心:完成實(shí)際的過濾操作。當(dāng)用戶請(qǐng)求訪問與過濾器【關(guān)聯(lián)的URL】時(shí),Web容器將先調(diào)用過濾器的doFilter方法,F(xiàn)ilterChain arg2參數(shù)可以調(diào)用chain.doFilter方法,將請(qǐng)求傳給下一個(gè)過濾器(或目標(biāo)資源),或利用轉(zhuǎn)發(fā),重定向?qū)⒄?qǐng)求轉(zhuǎn)發(fā)給其他資源。
?? (3)web容器在消耗過濾器前調(diào)用該方法,用于釋放過濾器占用的資源。(大多數(shù)情況用不到)
3、過濾器的配置如圖:
(1)一般配置一個(gè)<filter>,然后用多個(gè)<filter-mapping>與之關(guān)聯(lián)
在過濾器對(duì)象的doFilter()方法中,業(yè)務(wù)邏輯處理完成之后,需要通過FilterChain對(duì)象的doFilter()方法將請(qǐng)求傳遞到下一個(gè)過濾器或者目標(biāo)資源,否則將出現(xiàn)錯(cuò)誤。
查看全部 -
過濾器在web程序啟動(dòng)時(shí)就已經(jīng)從web服務(wù)器加載
用戶發(fā)送請(qǐng)求后,先通過過濾器,符合規(guī)則再發(fā)送給web資源
每次用戶發(fā)送請(qǐng)求,都會(huì)調(diào)用doFilter()
查看全部 -
過濾器的概念:
查看全部 -
過濾器應(yīng)用場景
查看全部 -
web,xml配置
查看全部 -
過濾器執(zhí)行順序
查看全部 -
doFilter方法傳遞給下一個(gè)過濾器或目標(biāo)資源,或者可以轉(zhuǎn)發(fā)或者重定向
查看全部 -
過濾器web.xml的配置
查看全部 -
在過濾器中指定編碼格式查看全部
-
可以在web.xml中配置初始參數(shù)查看全部
-
判斷session中是否有username,沒有不予放行且重定向到登陸界面查看全部
-
過濾器常用場景查看全部
-
異步servlet查看全部
-
可以用@webfilter注解進(jìn)行filter配置查看全部
-
可以在web.xml中配置error-page標(biāo)簽以指示錯(cuò)誤頁面查看全部
舉報(bào)