更新時間:2020-05-26 13:46:45 來源:動力節(jié)點 瀏覽2858次
今天要學習的是關于Filter的內(nèi)容,主要包括Filter的概念、快速入門、代碼演示、過濾器細節(jié),對Filter有學習需要的小伙伴可以在看完本文后,現(xiàn)在一起來看看Filter的學習筆記吧~

1.概念
Filter就是過濾器,在我們生活中有各種各樣的過濾器,比如凈水器,空氣凈化器等等。但是Filter指的是web中的過濾器,當訪問服務器的資源時,過濾器可以將請求攔截下來,完成一些特殊的功能。Filter一般用于完成通用的操作。如:登錄驗證、統(tǒng)一編碼處理、敏感字符過濾等等。
2.快速入門
步驟:
A.定義一個類,實現(xiàn)接口Filter
B.復寫方法
C.配置攔截路徑:web.xml;注解
3.代碼演示
@WebFilter("/*")//訪問所有資源之前,都會執(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.過濾器細節(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:在服務器啟動后,會創(chuàng)建Filter對象,然后調(diào)用init方法。只執(zhí)行一次。用于加載資源
B.doFilter:每一次請求被攔截資源時,會執(zhí)行。執(zhí)行多次
C.destroy:在服務器關閉后,F(xiàn)ilter對象被銷毀。如果服務器是正常關閉,則會執(zhí)行destroy方法。只執(zhí)行一次。用于釋放資源
5.過濾器配置詳解
攔截路徑配置:
A.具體資源路徑: /index.jsp 只有訪問index.jsp資源時,過濾器才會被執(zhí)行。
B.攔截目錄: /user/* 訪問/user下的所有資源時,過濾器都會被執(zhí)行。
C.后綴名攔截: *.jsp 訪問所有后綴名為jsp資源時,過濾器都會被執(zhí)行。
D.攔截所有資源:/* 訪問所有資源時,過濾器都會被執(zhí)行。

以上就是動力節(jié)點java培訓機構的小編針對“Java培訓教程之Filter學習”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。