更新時(shí)間:2022-02-07 11:24:36 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽769次
過(guò)濾器(Filter): 能夠完成篩選不需要數(shù)據(jù)的工具(東西).
類似于生活中的凈水器,香煙過(guò)濾嘴,濾紙, 收費(fèi)站等.------->單向的.
Web中: 過(guò)濾器其實(shí)就是服務(wù)端的一個(gè)程序(程序的最小單元就是類). 在Web開(kāi)發(fā)中,過(guò)濾器其實(shí)就是一個(gè)Web組件(Servlet/Filter/Listener),其實(shí)就是一個(gè)特殊的類. 一個(gè)類實(shí)現(xiàn)javax.servlet.Servlet接口:--->Servlet類. 一個(gè)類實(shí)現(xiàn)javax.servlet.Filter接口:----->Filter類.
過(guò)濾器的作用: 過(guò)濾器可以對(duì)所有的請(qǐng)求或者響應(yīng)做攔截操作.
1:以常規(guī)的方式調(diào)用資源(Servlet/JSP);
2:利用修改過(guò)的請(qǐng)求信息調(diào)用資源;
3:調(diào)用資源之后,但在響應(yīng)到客戶端之前,對(duì)響應(yīng)做出修改;
4:阻止當(dāng)前資源調(diào)用,代之轉(zhuǎn)到其他資源.
開(kāi)發(fā)Filter
(1):自定義一個(gè)類(XxxFilter,Xxx表示功能名),實(shí)現(xiàn)于javax.servlet.Filter接口.
(2):在web.xml中做配置,告訴Tomcat來(lái)幫我管理這一個(gè)類(負(fù)責(zé)了該類的生命周期).
使用:@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>
<!--表示:當(dāng)前Filter只對(duì)哪些資源做過(guò)濾/攔截操作,只對(duì)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í)行過(guò)濾的方法(每一次請(qǐng)求都會(huì)執(zhí)行過(guò)濾)
(3):void destroy():銷毀方法 執(zhí)行的流程: 在啟動(dòng)Tomcat服務(wù)器的時(shí)候,就會(huì)執(zhí)行構(gòu)造器和init方法. 構(gòu)造器--->init方法 -----> ( doFilter方法 )N次------->destroy方法
chain:鏈,鏈條,多個(gè)鏈的節(jié)點(diǎn)組合而成.
FilterChain:過(guò)濾器鏈,多個(gè)過(guò)濾器按照一定的順序排列在一起.
FilterChain.doFilter(req,resp):放行(放行給下一個(gè)Filter或資源)
以上就是關(guān)于“Filter過(guò)濾器的使用”介紹,大家如果想了解更多相關(guān)知識(shí),可以關(guān)注一下動(dòng)力節(jié)點(diǎn)的Filter過(guò)濾器,里面的課程內(nèi)容由淺到深,通俗易懂,適合小白學(xué)習(xí),希望對(duì)大家能夠有所幫助。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)