更新時(shí)間:2020-05-26 13:46:45 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2409次
今天要學(xué)習(xí)的是關(guān)于Filter的內(nèi)容,主要包括Filter的概念、快速入門、代碼演示、過濾器細(xì)節(jié),對(duì)Filter有學(xué)習(xí)需要的小伙伴可以在看完本文后,現(xiàn)在一起來看看Filter的學(xué)習(xí)筆記吧~
1.概念
Filter就是過濾器,在我們生活中有各種各樣的過濾器,比如凈水器,空氣凈化器等等。但是Filter指的是web中的過濾器,當(dāng)訪問服務(wù)器的資源時(shí),過濾器可以將請(qǐng)求攔截下來,完成一些特殊的功能。Filter一般用于完成通用的操作。如:登錄驗(yàn)證、統(tǒng)一編碼處理、敏感字符過濾等等。
2.快速入門
步驟:
A.定義一個(gè)類,實(shí)現(xiàn)接口Filter
B.復(fù)寫方法
C.配置攔截路徑:web.xml;注解
3.代碼演示
@WebFilter("/*")//訪問所有資源之前,都會(huì)執(zhí)行該過濾器
public?class?FilterDemo1?implements?Filter?{
?????????@Override
???????????public?void?init(FilterConfig?filterConfig)?throws?ServletException?{
???????????????????????????}
???????????????????????????
????@Override
????public?void?doFilter(ServletRequest?servletRequest,?ServletResponse?servletResponse,?FilterChain?filterChain)?throws?IOException,?ServletException?{
????System.out.println("filterDemo1被執(zhí)行了....");
???????????????????????????//放行
?????filterChain.doFilter(servletRequest,servletResponse);
???????????????????????????}
????????????????????????????????@Override
????????????????????????????????public?void?destroy()?{
????????????????????????????????}
????????????????????????????}
4.過濾器細(xì)節(jié)
1)web.xml配置
<filter>
<filter-name>demo1</filter-name>
??????<filter-class>cn.itcast.web.filter.FilterDemo1</filter-class>
???????</filter>
????????<filter-mapping>
??????<filter-name>demo1</filter-name>
?????????????<!--?攔截路徑?-->
??????<url-pattern>/*</url-pattern>
??????????</filter-mapping>
2)過濾器執(zhí)行流程
A.執(zhí)行過濾器
B.執(zhí)行放行后的資源
C.回來執(zhí)行過濾器放行代碼下邊的代碼
3)過濾器生命周期方法
A.init:在服務(wù)器啟動(dòng)后,會(huì)創(chuàng)建Filter對(duì)象,然后調(diào)用init方法。只執(zhí)行一次。用于加載資源
B.doFilter:每一次請(qǐng)求被攔截資源時(shí),會(huì)執(zhí)行。執(zhí)行多次
C.destroy:在服務(wù)器關(guān)閉后,F(xiàn)ilter對(duì)象被銷毀。如果服務(wù)器是正常關(guān)閉,則會(huì)執(zhí)行destroy方法。只執(zhí)行一次。用于釋放資源
5.過濾器配置詳解
攔截路徑配置:
A.具體資源路徑: /index.jsp 只有訪問index.jsp資源時(shí),過濾器才會(huì)被執(zhí)行。
B.攔截目錄: /user/* 訪問/user下的所有資源時(shí),過濾器都會(huì)被執(zhí)行。
C.后綴名攔截: *.jsp 訪問所有后綴名為jsp資源時(shí),過濾器都會(huì)被執(zhí)行。
D.攔截所有資源:/* 訪問所有資源時(shí),過濾器都會(huì)被執(zhí)行。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java培訓(xùn)教程之Filter學(xué)習(xí)”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743