《JSP過濾器》PPT課件.ppt

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

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

9.9 積分

下載資源

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

資源描述:

《《JSP過濾器》PPT課件.ppt》由會員分享,可在線閱讀,更多相關《《JSP過濾器》PPT課件.ppt(38頁珍藏版)》請在裝配圖網(wǎng)上搜索。

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

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

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

4、,,doFilter(): 與 servlet 擁有一個 service() 方法(這個方法又調用 doPost() 或者 doGet() )來處理請求一樣,過濾器擁有單個用于處理請求和響應的方法doFilter() 。 這個方法接受三個輸入?yún)?shù):一個 ServletRequest 、 ServletResponse和一個 FilterChain 對象。,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); //以上是請求資源之前進行攔截后的操作 chain.doFilter(request, response); //提交給相應資源 //以上是響應到客戶端之

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、實例,實例一 記錄所有用戶訪問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); ,效果,,實例二 用于設置HTTP請求字符編碼的過濾器,通過過濾器參數(shù)encoding指明使用何種字符編碼,用于處理HtmlForm請求參數(shù)的中文問題,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 /* ,,實例三 創(chuàng)建Servlet過濾器“IPFilter.java”,它可以過濾用戶的IP地址,以進行訪問控制。,(1)源代碼 public class IPFilter implements Filter protected FilterConfig filterConfig; protected String filterIP;//需要過濾的IP地址 /*初始化過濾器*/ public void

14、init(FilterConfig config) throws ServletException this.filterConfig=config; filterIP=config.getInitParameter(filterIP); //獲取被過濾的IP地址 if(filterIP==null)filterIP=; ,/*過濾操作*/ 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地址被過濾,將轉向錯誤頁面 reqDispatcher.forward(reg, res); else //否則將請求轉發(fā)給過濾器鏈中的其他資源 chain.doFilter(reg, res); /*銷毀過濾器*/ public void destroy() th

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

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

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

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

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

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

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

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

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

相關資源

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

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

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


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