歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

Servlet核心技術(shù).ppt

  • 資源ID:13560932       資源大?。?span id="czgux75" class="font-tahoma">558.81KB        全文頁數(shù):52頁
  • 資源格式: PPT        下載積分:14.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要14.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

Servlet核心技術(shù).ppt

第6章 Servlet核心技術(shù),6.1 Servlet基礎(chǔ),6.2 Servlet生命周期,6.3 使用Servlet,6.4 獲取運行環(huán)境信息,6.5 Servlet中會話設(shè)置,6.6 Servlet中異常設(shè)置,6.7 Servlet過濾器,6.8 Servlet監(jiān)聽器,6.1 Servlet基礎(chǔ),6.1.1 Servlet技術(shù)功能,6.1.2 Servlet特征,Servlet是1997年由Sun和其它的幾個公司提出的一項技術(shù),使用該技術(shù)能將HTTP請求和響應(yīng)封裝在標(biāo)準(zhǔn)Java類中來實現(xiàn)各種Web應(yīng)用方案。Servlet是使用Java語言編寫的服務(wù)器端程序,它能夠接受客戶端的請求并產(chǎn)生響應(yīng)。與常規(guī)的CGI程序相比,Servlet具有更好的可移植性和安全性、以及更強大的功能等特點。,返回,Servlet是對支持Java的服務(wù)器的一般擴(kuò)充,它最常見的用途就是擴(kuò)展Web服務(wù)器,即:每當(dāng)請求到達(dá)服務(wù)器時,Servlet負(fù)責(zé)對請求做出相應(yīng)的響應(yīng)。Servlet最常見的功能包括以下幾種:,Servlet技術(shù)功能,基于客戶端的響應(yīng),給客戶端生成并返回一個包含動態(tài)內(nèi)容的HTML 頁面。 可生成一個HTML片段,并能將其嵌入到現(xiàn)有HTML頁面中。 能夠在其內(nèi)部調(diào)用其它的Java資源并與多種數(shù)據(jù)庫進(jìn)行交互。 可同時與多個客戶機(jī)進(jìn)行連接,包括接收多個客戶機(jī)的輸入以及并將 結(jié)果返回給多個客戶機(jī)。 在不同的情況下,可將服務(wù)器與Applet的連接保持在不同的狀態(tài)。 對特殊的處理采用MIME類型過濾數(shù)據(jù)。 將定制的處理提供給所有服務(wù)器的標(biāo)準(zhǔn)例行程序。例如,Servlet可以 修改如何認(rèn)證用戶。,返回,Servlet是傳統(tǒng)CGI的替代品,它能夠動態(tài)的生成Web頁面,與其他 的動態(tài)網(wǎng)頁編程技術(shù)相比,Servlet具有以下幾點非常明顯的特征:,Servlet特征(1),高效性 傳統(tǒng)CGI中,對每個請求都要啟動一個新的進(jìn)程,啟動進(jìn)程所需要的開銷在有些情況下就可能很大,而Servlet在服務(wù)器上僅有一個Java虛擬機(jī)在運行,每個Servlet請求都作為持久性進(jìn)程中的一個單獨線程得以執(zhí)行,相對于傳統(tǒng)CGI而言,顯然效率要高得多。 方便性 Servlet提供了大量的實用工具例程。例如,自動解析和編碼HTML表單數(shù)據(jù)、讀取和設(shè)置HTTP頭、處理Cookie、跟蹤會話等等。 功能強大 許多傳統(tǒng)CGI程序很難完成的工作使用Servlet就可輕松完成。例如Serlet能夠直接和Web服務(wù)器交互,而普通的CGI程序則不能。Servlet還能夠在各個應(yīng)用程序之間共享數(shù)據(jù),使得數(shù)據(jù)庫連接池之類的功能很容易實現(xiàn)。,Servlet特征(2),跨平臺性 Servlet采用Java語言編寫,在有Java運行環(huán)境的任何操作系統(tǒng)上都可運行。 成本低 許多廉價甚至免費的Web服務(wù)器可供個人或小規(guī)模網(wǎng)站使用,而且對于現(xiàn)有的服務(wù)器,即使它不支持Servlet,要加上這部分功能也往往是免費的(或只需要極少的投資)。 可擴(kuò)展性 Servlet采用Java語言編寫,而且得到了廣泛的支持,因此基于Servlet的應(yīng)用具有很好的擴(kuò)展性。,返回,6.2 Servlet生命周期,6.2.1 加載并初始化Servlet,6.2.2 處理客戶端請求,6.2.3 卸載Servlet,Servlet的生命周期如圖所示:,返回,加載并初始化Servlet,Servlet加載和實例化是由容器來負(fù)責(zé)完成的。加載和實例化Servlet其實指的是將Servlet類載入JVM(Java虛擬機(jī))中并初始化。將Servlet類載入JVM中的時機(jī)存在一下3種可能:,當(dāng)服務(wù)器啟動時。 瀏覽器第一次接收請求時。 根據(jù)管理員要求。,當(dāng)服務(wù)器啟動時,首先容器會定位Servlet類,然后加載它,容器加載Servle類以后,就會實例化該類的一個或者可能多個實例,Servlet被實例化后,容器會在客戶端請求以前首先初始化它,其方式就是調(diào)用它的init()方法,并傳遞實現(xiàn)ServletConfig接口的對象。執(zhí)行完init()方法后,Servlet就會處于“已初始化”狀態(tài)。,在初始化階段,Servlet實例可能會拋出ServletException異?;騏navailableException 異常。,返回,處理客戶端請求,Servlet初始化完畢以后,就可以用來處理客戶端的請求了。當(dāng)客戶端發(fā)來請求時,容器會首先為請求創(chuàng)建一個ServletRequest對象和ServletResponse對象,其中ServletRequest代表請求對象,ServletResponse代表響應(yīng)對象。然后會調(diào)用service()方法,并把請求和響應(yīng)對象作為參數(shù)傳遞,從而把請求委托給Servlet。在每次請求中,ServletRequest對象負(fù)責(zé)接受請求,ServletResponse對象負(fù)責(zé)響應(yīng)請求。,在HTTP請求的情況下,容器會調(diào)用與HTTP請求的方法相應(yīng)的doXXX()方法,例如,若HTTP請求的方式為GET,容器會調(diào)用doGet()方法,若HTTP請求的方式為POST,容器會調(diào)用doPost()方法。,Servlet在處理客戶端請求的時候有可能會拋出ServletException異?;蛘遀navailableException異常。,返回,卸載Servlet,Servlet的卸載是由容器定義和實現(xiàn)的,因為資源回收或其他原因,當(dāng)Servlet需要銷毀時,容器會在所有Servlet的service()線程完成之后(或在容器規(guī)定時間后)調(diào)用Servlet的destroy()方法,以此來釋放系統(tǒng)資源,比如數(shù)據(jù)庫的連接等等。 在destroy()方法調(diào)用之后,容器會釋放Servlet實例,該實例隨后會被Java的垃圾收集器所回收。如果再次需要這個Servlet處理請求,Servlet容器會創(chuàng)建一個新的Servlet實例。,返回,6.3 使用Servlet,6.3.1 認(rèn)識第一個Servlet,6.3.2 使用HttpServlet,在應(yīng)用程序中,所有的Servlet都必須直接或者間接地實現(xiàn)javax.servlet.Servlet接口,而我們在開發(fā)過程中最常使用的則是擴(kuò)展javax.servlet.Servlet接口的實現(xiàn)類javax.servlet.GenericServlet和其子類javax.servlet.http.HttpServlet。,返回,認(rèn)識第一個Servlet (1),一個普通的Servlet只需擴(kuò)展javax.servlet.GenericServlet即可,GenericServlet類定義了一個普通的、協(xié)議無關(guān)的Servlet,使用GenericServlet類可使編寫Servlet變得簡單。例如,創(chuàng)建一個簡單的Servlet,主要代碼如下:,public class ServletSample extends GenericServlet public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException response.setCharacterEncoding("GBK"); /設(shè)置響應(yīng)的編碼類型為GBK PrintWriter out=response.getWriter(); /獲取輸出對象 out.println(""); out.println("這是第一個Servlet的例子"); out.println(""); out.close();/關(guān)閉輸出對象 ,認(rèn)識第一個Servlet (2),配置web.xml文件,通過元素和元素實現(xiàn),其中元素用來定義,元素用來為Servlet配置映射路徑。, ServletSample sunyang.ServletSample ServletSample /servlet ,程序的運行結(jié)果如圖所示:,返回,使用HttpServlet (1),創(chuàng)建用于Web的Servlet,需要擴(kuò)展javax.servlet.http.HttpServlet。HttpServlet可用于處理HTTP請求,例如,創(chuàng)建用于Web的Servlet:,使用HttpServlet (2),配置web.xml文件, ServletSample sunyang.HttpServletSample ServletSample /httpServlet ,程序的運行結(jié)果如圖所示:,返回,6.4 獲取運行環(huán)境信息,6.4.1 獲取Servlet信息,6.4.2 獲取服務(wù)器端信息,6.4.3 獲取客戶端信息,運行環(huán)境信息包括Servlet信息、服務(wù)器端信息和客戶端信息。,返回,獲取Servlet信息 (1),Servlet信息包括Servlet的初始化參數(shù)、Servlet的初始化參數(shù)名和Servlet名稱,這些信息通常都是配置在web.xml中的,可通過javax.servlet.ServletConfig接口中定義的方法來獲取。,1. 獲取Servlet的初始化參數(shù),在Web.xml文件中,元素的相關(guān)配置代表Servlet的初始化參數(shù),在Servlet中這些參數(shù)的獲取是通過ServletConfig接口的getInitParameter()方法來完成的,getInitParameter()方法的語法格式如下:,public String getInitParameter(String name),語句中,參數(shù)name為元素的值。getInitParameter()方法的返回值為元素的值。,獲取Servlet信息 (2),2獲取Servlet初始化參數(shù)名,在web.xml文件中,元素的值即為Servlet初始化參數(shù)名。獲取Servlet初始化參數(shù)名通過ServletConfig接口的getInitParameterNames()方法來完成,該方法的語法格式如下:,public Enumeration getInitParameterNames(),getInitParameterNames()方法的返回值為一個枚舉對象(Enumeration),和getInitParameter()方法一樣,該方法也可在GenericServlet的子類中直接調(diào)用。,獲取Servlet信息 (3),3獲取Servlet名稱,可通過ServletConfig接口的getServletName()方法來獲取Servlet在web.xml文件中的注冊名稱,該方法的語法格式如下:,public String getServletName(),getServletName()方法的返回值為元素的值,若Servlet未注冊,則返回類名。,返回,獲取服務(wù)器端信息(1),服務(wù)器端信息包括服務(wù)器名、服務(wù)器端口號、服務(wù)器的屬性信息等,Servlet通過ServletContext和ServletRequest接口提供的相關(guān)方法可獲取這些服務(wù)器端信息,這些方法的名稱及其作用如表所示:,獲取服務(wù)器端信息(2),應(yīng)用舉例:Servlet主要代碼如下:,獲取服務(wù)器端信息(3),在XML文件中配置之后,運行結(jié)果如圖所示:,返回,獲取客戶端信息(1),客戶端信息包括客戶端主機(jī)名、客戶端IP地址、客戶端端口號、客戶端的請求參數(shù)等,Servlet通過ServletRequest接口或其子接口HttpServletRequest提供的相關(guān)方法可獲取客戶端信息,這些方法的名稱及其作用如表所示:,獲取客戶端信息(2),實例:Servlet主要代碼如下:,獲取客戶端信息(3),配置Web.xml文件,運行結(jié)果如圖所示:,返回,6.5 Servlet中會話設(shè)置,6.5.1 獲取HttpSession對象,6.5.2 在HttpSession對象中保存數(shù)據(jù),6.5.3 在HttpSession對象中讀取數(shù)據(jù),返回,獲取HttpSession對象,當(dāng)需要為客戶端建立session時,Servlet容器會給每一個用戶建立一個HttpSession對象。獲取HttpSession對象的方式是通過調(diào)用HttpServletRequest 接口提供的以下兩個方法:,public HttpSession getSession() public HttpSession getSession(Boolean create),使用無參數(shù)的getSession()方法會獲取一個HttpSession對象,而對于帶參數(shù)的getSession()方法,如果當(dāng)前請求不屬于任何會話,而且參數(shù)create值為true,則創(chuàng)建一個新會話,否則返回null,此后所有來自同一個的請求都屬于這個會話。,返回,在HttpSession對象中保存數(shù)據(jù),獲取到HttpSession對象后,通過HttpSession對象的setAttribute()方法通過綁定一對名字/值數(shù)據(jù),可將相關(guān)數(shù)據(jù)保存到當(dāng)前會話中,如果會話中已經(jīng)存在該名字則替換它,setAttribute()方法的語法格式如下:,public void setAttribute(String name,Object value),參數(shù)name是綁定到會話中的屬性名稱,參數(shù)value是屬性的值。,返回,在HttpSession對象中讀取數(shù)據(jù),HttpSession提供的getAttribute()方法可讀取存儲在會話中的對象,該方法的語法格式如下:,public Object getAttribute(String name),參數(shù)name的值為setAttribute(String name,Object value)方法中設(shè)置的name的值。,返回,6.6 Servlet中異常設(shè)置(1),在Servlet中,可使用兩種處理異常的方式:,在try/catch語句的catch語句塊中直接生成并輸出異常信息的 頁面,或者將異常轉(zhuǎn)發(fā)到異常處理的Servlet或JSP頁面中。 在web.xml文件中通過元素指定異常處理。,第一種方式和普通的Java類中處理異常的方式類似,第二種方式則是由Servle規(guī)范提出的,其優(yōu)點就是這種處理方式屬于整個Web程序的異常處理,它使得Web程序以一種統(tǒng)一的方式在不同的服務(wù)器中顯示異常信息。,下面看一個實例:,6.6 Servlet中異常設(shè)置(2),(1)創(chuàng)建兩個JSP頁面,名稱分別為“exception.jsp”和“notFind.jsp”,其中exception.jsp用來處理數(shù)組下標(biāo)越界的異常,notFind.jsp用來處理404錯誤代碼 。, 數(shù)組下標(biāo)越界異常頁面 請求中出現(xiàn)數(shù)組下標(biāo)越界異常 , 404錯誤處理頁面 當(dāng)前請求的頁面不存在 ,notFind.jsp,exception.jsp,6.6 Servlet中異常設(shè)置(3),(2)創(chuàng)建Servlet類ExceptionServlet.ava,該類可產(chǎn)生一個數(shù)組下標(biāo)越界異常,代碼如下:,public class ExceptionServlet extends HttpServlet protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException this.doPost(req, resp); protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException int num=new int2; num3=0; /數(shù)組下標(biāo)越界 ,6.6 Servlet中異常設(shè)置(4),(3)在web.xml中配置類ExceptionServlet和元素:,6.6 Servlet中異常設(shè)置(5),(4)運行結(jié)果,當(dāng)請求ExceptionServlet時,則出現(xiàn)如圖1所示的頁面:,當(dāng)請求一個不存在的頁面時,則出現(xiàn)如圖2所示的頁面:,圖1,圖2,返回,6.7 Servlet過濾器,6.7.1 Servlet過濾器工作原理,6.7.2 Servlet過濾器配置,6.7.3 Servlet過濾器典型應(yīng)用,返回,Servlet過濾器工作原理,Servlet過濾器其實就是一種小型的、可插入的Web組件,它能夠?qū)ervlet容器的請求和響應(yīng)進(jìn)行攔截和處理,不能生成請求和響應(yīng)。,Servlet過濾器介于與之相關(guān)的Servlet或JSP頁面與客戶端之間,工作原理:當(dāng)某個資源與Servlet過濾器關(guān)聯(lián)后,對該資源的所有請求都會經(jīng)過Servlet過濾器,Servlet過濾器在Servlet被調(diào)用之前會檢查請求對象(Request對象),并決定是將請求轉(zhuǎn)發(fā)給過濾器鏈中的下一個資源還是中止該請求并響應(yīng)用戶。若請求被轉(zhuǎn)發(fā)給過濾器鏈中的下一個資源處理后,Servlet過濾器會檢查響應(yīng)對象(Response對象),進(jìn)行處理后返回給用戶,其工作原理如圖所示:,返回,Servlet過濾器配置 (1),配置Servlet過濾器包括下面兩個步驟:,(1)命名Servlet過濾器和指定Servlet 過濾器相應(yīng)的實現(xiàn)類,并且可選擇指定傳遞至Servlet過濾器的初始化參數(shù)。配置代碼如下:, FilterName package.className ParamName1 ParamValue1 ParamName1 ParamValue1 ,Servlet過濾器配置 (2),(2)將Servlet 過濾器映射至 URL 或 Servlet,這是通過元素來實現(xiàn)的。將Servlet 過濾器映射至 URL的配置代碼如下:, FilterName /path ,元素和元素的子元素一致。元素指定了過濾器的映射路徑,Servlet過濾器還可映射至Servlet :, FilterName ServletName ,元素和元素的子元素一致。元素指定過濾器映射的Servlet的名稱,返回,Servlet過濾器典型應(yīng)用(1),創(chuàng)建過濾器須實現(xiàn)javax.servlet.Filter接口,該接口內(nèi)定義了3個方法:,init(FilterConfig config):用于初始化過濾器,并其內(nèi)獲取web.xml 文件中配置的過濾器初始化參數(shù)。 doFilter(ServletRequest reg, ServletResponse res,FilterChain chain): 用于進(jìn)行過濾操作,該方法的第一個參數(shù)為ServletRequest對象, 此對象給過濾器提供了對進(jìn)入的信息(包括表單數(shù)據(jù)、Cookie和 HTTP請求頭)的完全訪問;第二個參數(shù)為ServletResponse,用于 響應(yīng)使用ServletRequest對象訪問的信息,通常在簡單的過濾器中 忽略此參數(shù);最后一個參數(shù)為 FilterChain,該參數(shù)用來調(diào)用過濾 器鏈中的下一個資源。 destroy():用于銷毀過濾器。,Servlet過濾器典型應(yīng)用(2),創(chuàng)建過濾器實例:,(1)創(chuàng)建Servlet過濾器“IPFilter.java”,它可以過濾用戶的IP地址,以進(jìn)行訪問控制。該過濾器IPFilter的關(guān)鍵代碼如下:,public class IPFilter implements Filter protected FilterConfig filterConfig; protected String filterIP;/需要過濾的IP地址 /*初始化過濾器*/ public void init(FilterConfig config) throws ServletException this.filterConfig=config; filterIP=config.getInitParameter("filterIP"); /獲取被過濾的IP地址 if(filterIP=null)filterIP="" ,Servlet過濾器典型應(yīng)用(3),/*過濾操作*/ public void doFilter(ServletRequest reg, ServletResponse res, FilterChain chain) throws IOException, ServletException RequestDispatcher reqDispatcher=reg.getRequestDispatcher("error.jsp"); String remoteIP=reg.getRemoteAddr();/獲取本地IP地址 if(remoteIP.equals(filterIP)/如果該IP地址被過濾,將轉(zhuǎn)向錯誤頁面 reqDispatcher.forward(reg, res); else /否則將請求轉(zhuǎn)發(fā)給過濾器鏈中的其他資源 chain.doFilter(reg, res); /*銷毀過濾器*/ public void destroy() this.filterConfig=null; ,Servlet過濾器典型應(yīng)用(4),(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 /* ,Servlet過濾器典型應(yīng)用(5),(3)建立測試IPFilter過濾器的JSP頁面“success.jsp”和“error.jsp”。, 歡迎頁面 歡迎訪問吉林省三揚科技咨詢有限 公司! , 拒絕訪問 對不起,您的IP地址禁止訪問該網(wǎng)站 ,success.jsp,error.jsp,Servlet過濾器典型應(yīng)用(6),(4)運行結(jié)果:,當(dāng)IP地址非192.168.70.82的用戶訪問success.jsp時,運行結(jié)果 如圖1所示:,當(dāng)IP地址非192.168.70.82的用戶訪問success.jsp時,運行結(jié)果 如圖2所示:,圖1,圖2,返回,6.8 Servlet監(jiān)聽器,6.8.1 Servlet監(jiān)聽器工作原理,6.8.2 Servlet監(jiān)聽器類型,6.8.3 Servlet監(jiān)聽器典型應(yīng)用,返回,Servlet監(jiān)聽器工作原理,Servlet監(jiān)聽器是Web應(yīng)用程序事件模型的一部分,當(dāng)Web應(yīng)用中的某些狀態(tài)發(fā)生改變時,Servlet容器就會產(chǎn)生相應(yīng)的事件,比如創(chuàng)建ServletContext對象時觸發(fā)ServletContextEvent事件,創(chuàng)建HttpSession對象時觸發(fā)HttpSessionEvent事件,Servlet監(jiān)聽器可接收這些事件,并可以在事件發(fā)生前、發(fā)生后可以做一些必要的處理。,返回,Servlet監(jiān)聽器類型 (1),根據(jù)監(jiān)聽對象的不同,Servlet2.4規(guī)范將Servlet監(jiān)聽器劃分為以下3種:,ServletContext事件監(jiān)聽器:用于監(jiān)聽?wèi)?yīng)用程序環(huán)境對象。 HttpSession事件監(jiān)聽器:用于監(jiān)聽用戶會話對象。 ServletRequest事件監(jiān)聽器:用于監(jiān)聽請求消息對象。,1ServletContext事件監(jiān)聽器,對ServletContext對象進(jìn)行監(jiān)聽的接口有ServletContextAttributeListener和ServletContextListener,其中ServletContextAttributeListener用于監(jiān)聽ServletContext對象中屬性的改變,包括增加屬性、刪除屬性和修改屬性。ServletContextListener用于監(jiān)聽ServletContext對象本身的改變,例如ServletContext對象的創(chuàng)建和銷毀。,Servlet監(jiān)聽器類型 (2),ServletContext事件監(jiān)聽器中的接口和方法如表所示:,Servlet監(jiān)聽器類型 (3),2HttpSession事件監(jiān)聽器,對會話對象進(jìn)行監(jiān)聽的接口有HttpSessionAttributeListener、HttpSessionListener、HttpSessionActivationListener和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),例如添加對象和移除對象。,Servlet監(jiān)聽器類型 (4),HttpSession事件監(jiān)聽器中的接口和方法如表所示:,Servlet監(jiān)聽器類型 (5),3ServletRequest事件監(jiān)聽器,對請求消息對象進(jìn)行監(jiān)聽的接口有ServletRequestListener和ServletRequestAttributeListener,其中ServletRequestListener用于監(jiān)聽ServletRequest對象的變化,例如ServletRequest對象的創(chuàng)建和銷毀。ServletRequestAttributeListener用于監(jiān)聽ServletRequest對象中屬性的變化,例如屬性的增加、刪除和修改。ServletRequest事件監(jiān)聽器的接口和方法如表所示:,返回,Servlet監(jiān)聽器典型應(yīng)用(1),(1)創(chuàng)建Servlet監(jiān)聽器OnlineListener,OnlineListener監(jiān)聽器用于監(jiān)聽網(wǎng)站的在線人數(shù),代碼如下:,public class OnlineListener implements HttpSessionListener private int onlineCount;/定義一個代表在線人數(shù)的變量 public OnlineListener()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); ,Servlet監(jiān)聽器典型應(yīng)用(2),(2)在web.xml文件中配置OnlineListener監(jiān)聽器,相關(guān)代碼如下:,(3)創(chuàng)建JSP頁面“online.jsp”,測試OnlineListener監(jiān)聽器,代碼如下:, 使用監(jiān)聽器監(jiān)聽在線人數(shù)的例子 當(dāng)前的在線人數(shù): ,運行程序,顯示結(jié)果如圖所示:, sunyang.OnlineListener ,返回,

注意事項

本文(Servlet核心技術(shù).ppt)為本站會員(sh****n)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

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

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


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