国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用J2EE Web應用的事件功能

2019-11-18 16:00:21
字體:
來源:轉載
供稿:網友

  在Servlet2.3規范中,Web應用事件是新增加的部分。它讓你能最大程度地控制你的Web應用。在本文中,我們將學習兩個很重要的應用事件:

應用的啟動和停止

session的創建和失效如它們的名字那樣,應用啟動事件發生在你的應用第一次被servlet容器裝載和啟動的時候;停止事件發生在Web應用停止的時候。

Session創建事件發生在每次一個新的session創建的時候,類似地Session失效事件發生在每次一個Session失效的時候。為了使用這些Web應用事件為你做些有用的事情,我們必須創建和使用一些非凡的“監聽”類。下面,我們將研究這些監聽類到地是什么以及我們如何去使用它們。

監聽類:它們是實現了下邊兩個接口中任何一個接口的簡單的java類:

javax.servlet.ServletContextListener javax.servlet.http.HttpSessionListener


假如你想讓你的類監聽應用的啟動和停止事件,你就得實現ServletContextListener接口;假如你想讓你的類去監聽Session的創建和失效事件,那你就得實現HttpSessionListener接口。 讓我們看看在這些接口中你必須要實現的方法。

1.ServletContextListener :

接口包括如下兩個方法:

public void contextInitialized(ServletContextEvent sce); public void contextDestroyed(ServletContextEvent sce);


假如你實現了一個接口,那你就必須實現它所有的方法。因此,假如你想利用應用的啟動和停止事件,你就需要創建一個Java類并實現ServletContextListener接口。下邊是這樣的一個類的例子:

/*File : applicationWatch.java*/import javax.servlet.ServletContextListener;import javax.servlet.ServletContextEvent;public class ApplicationWatch implements ServletContextListener {public static longapplicationInitialized = 0L;/* 應用啟動事件 */public void contextInitialized(ServletContextEvent ce){applicationInitialized =System.currentTimeMillis();}/*應用停止事件 */public void contextDestroyed(ServletContextEvent ce) {}}


在上邊的代碼中,ApplicationWatch類實現了ServletContextListener接口。它實現了接口中的兩個方法,但只用了其中的一個方法,另一個方法中沒有寫任何代碼。這個類把應用啟動的時間記錄在一個可以從其它應用類中存取應用啟動時間的public static變量中。

我將很快解釋如何告訴服務器我們有這個監聽類,但首先讓我們看看HttpSessionListener接口有什么不同的方法。

2.HttpSessionListener :



這個接口也只包含兩個方法,分別對應于Session的創建和失效:

public void sessionCreated(HttpSessionEvent se); public void sessionDestroyed(HttpSessionEvent se);


如上邊的ApplicationWatch例子那樣,我們也創建了一個實現HttpSessionListener接口的類。如下:

/*File : SessionCounter.java*/import javax.servlet.http.HttpSessionListener;import javax.servlet.http.HttpSessionEvent;public class SessionCounterimplements HttpSessionListener {PRivate static int activeSessions =0;/* Session創建事件 */public void sessionCreated(HttpSessionEvent se){       activeSessions++;}/* Session失效事件 */public void sessionDestroyed(HttpSessionEvent se){if(activeSessions>0)activeSessions--;}public static int getActiveSessions(){return activeSessions;}}


在上邊的代碼中,SessionCounter類實現了HttpSessionListener接口,其目的是計算活動會話的數量。

好了,我們已經學習了什么是Web應用事件,有什么接口可以用以及看到了一些實現這些接口的例子。讓我們看看如何告訴應用服務器我們有這些監聽類。

Web.xml : 我們通過把類路徑加入/WEB-INF/web.xml文件的標簽中來告訴服務器我們的監聽類。下邊是一個web.xml文件的例子:



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 任丘市| 灵宝市| 南召县| 曲靖市| 新龙县| 确山县| 山西省| 大化| 玉林市| 正宁县| 鄂尔多斯市| 太白县| 通许县| 乌鲁木齐市| 南乐县| 那坡县| 天门市| 兴山县| 宁德市| 子长县| 东源县| 焦作市| 静安区| 昭苏县| 儋州市| 合水县| 台北市| 渑池县| 临桂县| 南阳市| 崇信县| 土默特右旗| 双鸭山市| 松原市| 晋城| 犍为县| 杭锦后旗| 洪雅县| 呈贡县| 丹寨县| 柳河县|