《JSP過(guò)濾器》PPT課件.ppt

上傳人:san****019 文檔編號(hào):15680365 上傳時(shí)間:2020-08-29 格式:PPT 頁(yè)數(shù):38 大?。?59.60KB
收藏 版權(quán)申訴 舉報(bào) 下載
《JSP過(guò)濾器》PPT課件.ppt_第1頁(yè)
第1頁(yè) / 共38頁(yè)
《JSP過(guò)濾器》PPT課件.ppt_第2頁(yè)
第2頁(yè) / 共38頁(yè)
《JSP過(guò)濾器》PPT課件.ppt_第3頁(yè)
第3頁(yè) / 共38頁(yè)

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《《JSP過(guò)濾器》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《JSP過(guò)濾器》PPT課件.ppt(38頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、servlet過(guò)濾器與servlet監(jiān)聽(tīng)器,1、servlet過(guò)濾器 2、 servlet監(jiān)聽(tīng)器,1、servlet過(guò)濾器,1.1、什么是servlet過(guò)濾器 1.2、servlet過(guò)濾器的開(kāi)發(fā)步驟 1.3、實(shí)例 1.4、servlet過(guò)濾器的深入使用,1.1、什么是jsp監(jiān)聽(tīng)器,servlet 過(guò)濾器( Filter )是小型的 Web 組件,它們攔截請(qǐng)求和響應(yīng),以便查看、提取或以某種方式操作正在客戶機(jī)和服務(wù)器之間交換的數(shù)據(jù)。 實(shí)現(xiàn)過(guò)濾器只須在web.xml中設(shè)定相關(guān)設(shè)定,不需要修改Servlet、JSP和其他靜態(tài)頁(yè)面。因此開(kāi)發(fā)者可以輕易的加入Filter機(jī)制。,過(guò)濾器是通常封裝了一些功能的

2、 Web 組件,這些功能雖然很重要,但是對(duì)于處理客戶機(jī)請(qǐng)求或發(fā)送響應(yīng)來(lái)說(shuō)不是決定性的。 過(guò)濾器在Web開(kāi)發(fā)中的一些主要應(yīng)用: 對(duì)用戶請(qǐng)求進(jìn)行統(tǒng)一認(rèn)證。 對(duì)用戶的訪問(wèn)請(qǐng)求進(jìn)行記錄和審核。 對(duì)用戶發(fā)送的數(shù)據(jù)進(jìn)行過(guò)濾或替換。 轉(zhuǎn)換圖象格式。 對(duì)響應(yīng)內(nèi)容進(jìn)行壓縮,減少傳輸量。 對(duì)請(qǐng)求或響應(yīng)進(jìn)行加解密處理 觸發(fā)資源訪問(wèn)是事件。,1.2、servlet過(guò)濾器的開(kāi)發(fā)步驟,開(kāi)發(fā)Servlet過(guò)濾器的步驟如下: 1.2.1 編寫實(shí)現(xiàn)Filter接口的Servlet類。 1.2.2 在web.xml中配置Filter。,1.2.1 編寫實(shí)現(xiàn)Filter接口的Servlet類,開(kāi)發(fā)一個(gè)過(guò)濾器需要實(shí)現(xiàn)Filter接口

3、,F(xiàn)ilter接口定義了以下方法: (1)public void init(FilterConfig filterConfig)throws ServletException 由Web容器調(diào)用,初始化此Filter。 (2) public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)throws java.io.IOException,ServletException 具體過(guò)濾處理代碼。 (3)public void destroy() 由Web容器調(diào)用,在過(guò)濾器被銷毀之前調(diào)用。

4、,,doFilter(): 與 servlet 擁有一個(gè) service() 方法(這個(gè)方法又調(diào)用 doPost() 或者 doGet() )來(lái)處理請(qǐng)求一樣,過(guò)濾器擁有單個(gè)用于處理請(qǐng)求和響應(yīng)的方法doFilter() 。 這個(gè)方法接受三個(gè)輸入?yún)?shù):一個(gè) ServletRequest 、 ServletResponse和一個(gè) FilterChain 對(duì)象。,package com.wgw.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import

5、 javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class SimpleFilter implements Filter private FilterConfig filterConfig; public void init(FilterConfig config) throws ServletException this.filterConfi

6、g = config; ,public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException,ServletException System.out.println(Within SimpleFilter1:Filtering the Request...1); //以上是請(qǐng)求資源之前進(jìn)行攔截后的操作 chain.doFilter(request, response); //提交給相應(yīng)資源 //以上是響應(yīng)到客戶端之

7、前攔截后的操作 System.out .println(Within SimpleFilter1:Filtering the Response...1); public void destroy() this.filterConfig = null; ,1.2.2 在web.xml中配置Filter, filter1 com.wgw.filter.SimpleFilter1 filter1 /* ,效果,輸入網(wǎng)址http://127.0.0.1:8080/try/index.jsp,1.3、實(shí)例,實(shí)例一 記錄所有用戶訪問(wèn)try網(wǎng)站的信息。,package com.wgw.filter; im

8、port java.io.IOException; import javax.servlet.*; import java.util.*; import javax.servlet.http.*; public class SimpleFilter implements Filter private FilterConfig filterConfig; public void init(FilterConfig config) throws ServletException this.filterConfig = config; public void destroy() this.fi

9、lterConfig = null; ,public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException,ServletException HttpServletRequest req = (HttpServletRequest) request; ServletContext application = filterConfig.getServletContext(); application.log(req.getRem

10、oteHost() + tried to access + req.getRequestURL() + on + new Date() + .); chain.doFilter(request, response); ,效果,,實(shí)例二 用于設(shè)置HTTP請(qǐng)求字符編碼的過(guò)濾器,通過(guò)過(guò)濾器參數(shù)encoding指明使用何種字符編碼,用于處理HtmlForm請(qǐng)求參數(shù)的中文問(wèn)題,package com.wgw.filter; import javax.servlet.*; import java.io.IOException; public class CharacterEncodingFilter im

11、plements Filter protected FilterConfig filterConfig = null; protected String encoding = ; public void init(FilterConfig filterConfig) throws ServletException this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter(encoding); ,public void doFilter(ServletRequest servletRequest

12、, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException if(encoding != null) servletRequest.setCharacterEncoding(encoding); filterChain.doFilter(servletRequest, servletResponse); public void destroy() filterConfig = null; encoding = null; ,Web.xml Charac

13、terEncodingFilter com.wgw.filter.CharacterEncodingFilter encoding gbk CharacterEncodingFilter /* ,,實(shí)例三 創(chuàng)建Servlet過(guò)濾器“IPFilter.java”,它可以過(guò)濾用戶的IP地址,以進(jìn)行訪問(wèn)控制。,(1)源代碼 public class IPFilter implements Filter protected FilterConfig filterConfig; protected String filterIP;//需要過(guò)濾的IP地址 /*初始化過(guò)濾器*/ public void

14、init(FilterConfig config) throws ServletException this.filterConfig=config; filterIP=config.getInitParameter(filterIP); //獲取被過(guò)濾的IP地址 if(filterIP==null)filterIP=; ,/*過(guò)濾操作*/ public void doFilter(ServletRequest reg, ServletResponse res, FilterChain chain) throws IOException, ServletException Request

15、Dispatcher reqDispatcher=reg.getRequestDispatcher(error.jsp); String remoteIP=reg.getRemoteAddr();//獲取本地IP地址 if(remoteIP.equals(filterIP))//如果該IP地址被過(guò)濾,將轉(zhuǎn)向錯(cuò)誤頁(yè)面 reqDispatcher.forward(reg, res); else //否則將請(qǐng)求轉(zhuǎn)發(fā)給過(guò)濾器鏈中的其他資源 chain.doFilter(reg, res); /*銷毀過(guò)濾器*/ public void destroy() th

16、is.filterConfig=null; ,(2)在web.xml文件中配置IPFilter過(guò)濾器,在配置文件中定義了一個(gè)名為filterIP的參數(shù),它的值為192.168.70.82,表示IP地址為192.168.70.82的用戶將被拒絕訪問(wèn)。在web.xml文件中配置過(guò)濾器如下: IPFilter sunyang.IPFilter filterIP 192.168.70.82 IPFilter /* ,(3)建立測(cè)試IPFilter過(guò)濾器的JSP頁(yè)面“success.jsp”和“error.jsp”。, 歡迎頁(yè)面 歡迎 , 拒絕訪問(wèn) 對(duì)不起,您的IP地址

17、禁止訪問(wèn)該網(wǎng)站 ,success.jsp,error.jsp,,,1.4、servlet過(guò)濾器的深入使用,1.4.1 servlet的串聯(lián) 1.4.2 2.4版本下的servlet,2 Servlet監(jiān)聽(tīng)器,2.1 Servlet監(jiān)聽(tīng)器工作原理 2.2 Servlet監(jiān)聽(tīng)器類型 2.3 應(yīng)用實(shí)例,2.1 Servlet監(jiān)聽(tīng)器原理,Servlet監(jiān)聽(tīng)器是Web應(yīng)用程序事件模型的一部分,當(dāng)Web應(yīng)用中的某些狀態(tài)發(fā)生改變時(shí),Servlet容器就會(huì)產(chǎn)生相應(yīng)的事件,比如創(chuàng)建ServletContext對(duì)象時(shí)觸發(fā)ServletContextEvent事件,創(chuàng)建HttpSession對(duì)象時(shí)觸發(fā)HttpSes

18、sionEvent事件,Servlet監(jiān)聽(tīng)器可接收這些事件,并可以在事件發(fā)生前、發(fā)生后可以做一些必要的處理。,返回,根據(jù)監(jiān)聽(tīng)對(duì)象的不同,Servlet2.4規(guī)范將Servlet監(jiān)聽(tīng)器劃分為以下3種:,ServletContext事件監(jiān)聽(tīng)器:用于監(jiān)聽(tīng)?wèi)?yīng)用程序環(huán)境對(duì)象。 HttpSession事件監(jiān)聽(tīng)器:用于監(jiān)聽(tīng)用戶會(huì)話對(duì)象。 ServletRequest事件監(jiān)聽(tīng)器:用于監(jiān)聽(tīng)請(qǐng)求消息對(duì)象。,2.2 Servlet監(jiān)聽(tīng)器類型,1ServletContext事件監(jiān)聽(tīng)器,對(duì)ServletContext對(duì)象進(jìn)行監(jiān)聽(tīng)的接口有ServletContextAttributeListener和ServletCon

19、textListener,其中ServletContextAttributeListener用于監(jiān)聽(tīng)ServletContext對(duì)象中屬性的改變,包括增加屬性、刪除屬性和修改屬性。ServletContextListener用于監(jiān)聽(tīng)ServletContext對(duì)象本身的改變,例如ServletContext對(duì)象的創(chuàng)建和銷毀。,ServletContext事件監(jiān)聽(tīng)器中的接口和方法如表所示:,2HttpSession事件監(jiān)聽(tīng)器,對(duì)會(huì)話對(duì)象進(jìn)行監(jiān)聽(tīng)的接口有HttpSessionAttributeListener、HttpSessionListener、HttpSessionActivationLis

20、tener和HttpSessionBindingListener。 其中HttpSessionAttributeListener用于監(jiān)聽(tīng)HttpSession對(duì)象中屬性的改變,例如屬性的增加、刪除和修改。 HttpSessionListener用于監(jiān)聽(tīng)HttpSession對(duì)象的改變,例如HttpSession對(duì)象的創(chuàng)建與銷毀。 HttpSessionActivationListener用于監(jiān)聽(tīng)HttpSession對(duì)象的狀態(tài),例如HttpSession對(duì)象是被激活還是被鈍化。HttpSessionBindingListener用于監(jiān)聽(tīng)HttpSession對(duì)象的綁定狀態(tài),例如添加對(duì)象和移除對(duì)

21、象。,HttpSession事件監(jiān)聽(tīng)器中的接口和方法如表所示:,3ServletRequest事件監(jiān)聽(tīng)器,對(duì)請(qǐng)求消息對(duì)象進(jìn)行監(jiān)聽(tīng)的接口有ServletRequestListener和ServletRequestAttributeListener, 其中ServletRequestListener用于監(jiān)聽(tīng)ServletRequest對(duì)象的變化,例如ServletRequest對(duì)象的創(chuàng)建和銷毀。 ServletRequestAttributeListener用于監(jiān)聽(tīng)ServletRequest對(duì)象中屬性的變化,例如屬性的增加、刪除和修改。,返回,ServletRequest事件監(jiān)聽(tīng)器的接口和方法如

22、表所示:,2.3 Servlet監(jiān)聽(tīng)器應(yīng)用,創(chuàng)建Servlet監(jiān)聽(tīng)器OnlineListener,OnlineListener監(jiān)聽(tīng)器用于監(jiān)聽(tīng)網(wǎng)站的在線人數(shù),代碼如下:,,import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class OnlineListener implements HttpSessionListener private int onlineCount;//定義一個(gè)代表在線人數(shù)的變量 public OnlineListener()

23、onlineCount=0; public void sessionCreated(HttpSessionEvent sessionEvent) //會(huì)話創(chuàng)建時(shí)的處理 onlineCount++; sessionEvent.getSession().getServletContext().setAttribute(online,new Integer(onlineCount)); public void sessionDestroyed(HttpSessionEvent sessionEvent) //會(huì)話銷毀時(shí)的處理 onlineCount--; sessionEvent.getSession().getServletContext().setAttribute(online,new Integer(onlineCount)); ,(2)在web.xml文件中配置OnlineListener監(jiān)聽(tīng)器,相關(guān)代碼如下:,(3)創(chuàng)建JSP頁(yè)面“online.jsp”,測(cè)試OnlineListener監(jiān)聽(tīng)器,代碼如下:, 使用監(jiān)聽(tīng)器監(jiān)聽(tīng)在線人數(shù)的例子 當(dāng)前的在線人數(shù): , sunyang.OnlineListener ,

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!