更新時間:2022-02-07 11:24:36 來源:動力節(jié)點 瀏覽799次
過濾器(Filter): 能夠完成篩選不需要數(shù)據(jù)的工具(東西).
類似于生活中的凈水器,香煙過濾嘴,濾紙, 收費站等.------->單向的.
Web中: 過濾器其實就是服務(wù)端的一個程序(程序的最小單元就是類). 在Web開發(fā)中,過濾器其實就是一個Web組件(Servlet/Filter/Listener),其實就是一個特殊的類. 一個類實現(xiàn)javax.servlet.Servlet接口:--->Servlet類. 一個類實現(xiàn)javax.servlet.Filter接口:----->Filter類.
過濾器的作用: 過濾器可以對所有的請求或者響應(yīng)做攔截操作.
1:以常規(guī)的方式調(diào)用資源(Servlet/JSP);
2:利用修改過的請求信息調(diào)用資源;
3:調(diào)用資源之后,但在響應(yīng)到客戶端之前,對響應(yīng)做出修改;
4:阻止當前資源調(diào)用,代之轉(zhuǎn)到其他資源.
開發(fā)Filter
(1):自定義一個類(XxxFilter,Xxx表示功能名),實現(xiàn)于javax.servlet.Filter接口.
(2):在web.xml中做配置,告訴Tomcat來幫我管理這一個類(負責了該類的生命周期).
使用:@WebFilter("/hello.jsp")
或者在web.xml里面設(shè)置攔截器
<filter>
<filter-name>XxxFilter</filter-name>
<filter-class>XxxFilter類的全限定名</filter-class>
</filter>
<filter-mapping>
<filter-name>XxxFilter</filter-name>
<!--表示:當前Filter只對哪些資源做過濾/攔截操作,只對hello.jsp做攔截-->
<url-pattern>/hello.jsp</url-pattern>
</filter-mapping>
Filter的生命周期方法
(1):void init(FilterConfig config): 初始化方法
(2):void doFilter(ServletRequest request, ServletResponse response, FilterChain chain):執(zhí)行過濾的方法(每一次請求都會執(zhí)行過濾)
(3):void destroy():銷毀方法 執(zhí)行的流程: 在啟動Tomcat服務(wù)器的時候,就會執(zhí)行構(gòu)造器和init方法. 構(gòu)造器--->init方法 -----> ( doFilter方法 )N次------->destroy方法
chain:鏈,鏈條,多個鏈的節(jié)點組合而成.
FilterChain:過濾器鏈,多個過濾器按照一定的順序排列在一起.
FilterChain.doFilter(req,resp):放行(放行給下一個Filter或資源)
以上就是關(guān)于“Filter過濾器的使用”介紹,大家如果想了解更多相關(guān)知識,可以關(guān)注一下動力節(jié)點的Filter過濾器,里面的課程內(nèi)容由淺到深,通俗易懂,適合小白學(xué)習(xí),希望對大家能夠有所幫助。