JavaEE08Filter過濾器

JavaEE08Filter過濾器

ID:40847304

大?。?34.50 KB

頁數(shù):14頁

時間:2019-08-08

JavaEE08Filter過濾器_第1頁
JavaEE08Filter過濾器_第2頁
JavaEE08Filter過濾器_第3頁
JavaEE08Filter過濾器_第4頁
JavaEE08Filter過濾器_第5頁
資源描述:

《JavaEE08Filter過濾器》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、JavaEE第8章Filter過濾器FilterFilter是對HTTP請求和響應(yīng)的頭(Header)和體(Body)進(jìn)行特殊操作的Web組件.Filter本身不生成Web響應(yīng),只對Web的請求和響應(yīng)做過濾處理。Filter的主要用途對HTTP請求作分析,對輸入流進(jìn)行預(yù)處理。阻止請求或響應(yīng)的進(jìn)行。根據(jù)需求改動請求頭的信息和數(shù)據(jù)體。根據(jù)需求改動響應(yīng)的頭(Header)和體(Body)數(shù)據(jù)。與其他Web資源進(jìn)行協(xié)作過濾器的主要應(yīng)用案例安全保護(hù)。日志記錄。字符編碼轉(zhuǎn)換。圖像轉(zhuǎn)換。過濾器的編程實(shí)現(xiàn)javax.servlet.Filter接口。實(shí)現(xiàn)publicvoiddo

2、Filter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)方法。在doFilter()方法中編寫過濾代碼。Filter例子代碼publicclassCharEncodingFilterimplementsFilter{privateFilterConfigconfig=null;privateStringcontentType=null;privateStringcode=null;publicvoiddoFilter(ServletRequestreq,ServletRespon

3、seres,FilterChainchain)throwsIOException,ServletException{HttpServletRequestrequest=(HttpServletRequest)req;if(request.getContentType().equals(contentType)){request.setCharacterEncoding(code);}chain.doFilter(req,res);}}Filter的doFilter()方法此方法在每次過濾被激活時被調(diào)用。此方法代碼完成過濾器的操作功能。如果是HTTP請求,需要強(qiáng)轉(zhuǎn)

4、為HttpServletRequest和HttpServletResponse.過濾器的請求和響應(yīng)對象會被傳遞到被過濾的JSP或Servlet。可以通過對request對象操作,在Servlet之前修改請求對象的信息。通過response對象操作,在Servlet響應(yīng)之前修改響應(yīng)信息。Filter的init()方法在初始化方法init中可以取得FilterConfig對象,通過此對象可以取得過濾器配置的初始參數(shù),打開到外部資源的連接等,完成過濾器的初始化任務(wù)。publicvoidinit(FilterConfigconfig)throwsServletExcep

5、tion{}該方法傳入FilterConfig類型對象,可以得到FilterConfig實(shí)例,供過濾器中其他方法使用,通過FilterConfig對象可以得到過濾器配置的初始化參數(shù)。Filter的destory()方法在destroy()方法中編寫資源清理工作,如關(guān)閉數(shù)據(jù)庫連接,關(guān)閉I/O流對象,清除ServletContext等共享對象中保存的無用屬性等。該方法在Web容器銷毀過濾器之前被自動調(diào)用,昭示過濾器生命周期的終結(jié)。Filter配置:聲明過濾器功能:指示W(wǎng)eb容器過濾器的存在。位置:/WEB-INF/web.xml聲明語法:

6、r-name>LoginCheck包名.類名Filter配置:過濾器映射功能:設(shè)置過濾地址位置:/WEB-INF/web.xml文件語法:過濾器名過濾地址過濾器過濾地址格式絕對地址/admin/main.do匹配地址/admin/*匹配地址*.do安全過濾的例子//驗(yàn)證用戶是否登錄。pub

7、licvoiddoFilter(ServletRequestrequest,….){HttpServletRequestreq=(HttpServletRequest)request;HttpSessionsession=req.getSession();StringuserId=(String)session.getAttribute(“userId”);if(userId==null){res.sendRedirect(“/web01/login.jsp);}else{chain.doFilter(request,response);}}過濾器對象的生命周期

8、創(chuàng)建階段(2)初始化階段

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。