今天要學(xué)習(xí)的是關(guān)于Filter的內(nèi)容,主要包括Filter的概念、快速入門(mén)、代碼演示、過(guò)濾器細(xì)節(jié),對(duì)Filter有學(xué)習(xí)需要的小伙伴可以在看完本文后,現(xiàn)在一起來(lái)看看Filter的學(xué)習(xí)筆記吧~
1.概念
Filter就是過(guò)濾器,在我們生活中有各種各樣的過(guò)濾器,比如凈水器,空氣凈化器等等。但是Filter指的是web中的過(guò)濾器,當(dāng)訪問(wèn)服務(wù)器的資源時(shí),過(guò)濾器可以將請(qǐng)求攔截下來(lái),完成一些特殊的功能。Filter一般用于完成通用的操作。如:登錄驗(yàn)證、統(tǒng)一編碼處理、敏感字符過(guò)濾等等。
2.快速入門(mén)
步驟:
A.定義一個(gè)類,實(shí)現(xiàn)接口Filter
B.復(fù)寫(xiě)方法
C.配置攔截路徑:web.xml;注解
3.代碼演示
@WebFilter("/*")//訪問(wèn)所有資源之前,都會(huì)執(zhí)行該過(guò)濾器
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.過(guò)濾器細(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)過(guò)濾器執(zhí)行流程
A.執(zhí)行過(guò)濾器
B.執(zhí)行放行后的資源
C.回來(lái)執(zhí)行過(guò)濾器放行代碼下邊的代碼
3)過(guò)濾器生命周期方法
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.過(guò)濾器配置詳解
攔截路徑配置:
A.具體資源路徑: /index.jsp 只有訪問(wèn)index.jsp資源時(shí),過(guò)濾器才會(huì)被執(zhí)行。
B.攔截目錄: /user/* 訪問(wèn)/user下的所有資源時(shí),過(guò)濾器都會(huì)被執(zhí)行。
C.后綴名攔截: *.jsp 訪問(wèn)所有后綴名為jsp資源時(shí),過(guò)濾器都會(huì)被執(zhí)行。
D.攔截所有資源:/* 訪問(wèn)所有資源時(shí),過(guò)濾器都會(huì)被執(zhí)行。
以上就是長(zhǎng)沙一度軟件培訓(xùn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java培訓(xùn)教程之Filter學(xué)習(xí)”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
Java培訓(xùn)教程