<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    小海賊的夜晚

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      14 隨筆 :: 0 文章 :: 9 評論 :: 0 Trackbacks
    概述:

       在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 long applicationInitialized = 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 SessionCounter implements 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文件的標簽<listener>中來告訴服務器我們的監聽類。下邊是一個web.xml文件的例子:
    <!-- Web.xml -->
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/j2ee/dtds/web-app_2.3.dtd">
    <web-app>
    <!-- Listeners -->
    <listener>
    <listener-class>
    com.stardeveloper.web.listener.SessionCounter
    </listener-class>
    </listener>
    <listener>
    <listener-class>
    com.stardeveloper.web.listener.ApplicationWatch</listener-class>
    </listener>
    </web-app>
       如上所示,在web.xml文件中聲明監聽類是非常簡單的。現在,每次的服務器的啟動和停止,會話的創建和失效,配置好的監聽類的相應的方法就會被調用。就這么簡單!

    總結:

       在本文中我們學習了什么是Web應用事件和我們如何通過創建特殊的“監聽”類來使用它們。之后我們分別創建了兩個實現了ServletContextListener和HttpSessionListener接口的類。我們也學習了如何在web.xml文件中使用專門的<listener>和<listener-class>標簽來聲明這些監聽類。
  • posted on 2005-08-03 14:36 海賊 閱讀(283) 評論(0)  編輯  收藏 所屬分類: Servlet and JSP
    主站蜘蛛池模板: 国产福利在线免费| 国产妇乱子伦视频免费| 免费又黄又硬又爽大片| 亚洲精华国产精华精华液好用| 91热久久免费精品99| 亚洲AV中文无码字幕色三| 国产啪精品视频网站免费尤物| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 久久国产乱子伦精品免费午夜| 日韩免费观看一级毛片看看| 亚洲综合无码AV一区二区| 一个人免费播放在线视频看片| 国产精品亚洲玖玖玖在线观看| yellow免费网站| 久久久久亚洲精品无码系列| 91久久青青草原线免费| 亚洲av成人综合网| 国产免费怕怕免费视频观看| 国产V片在线播放免费无码| 亚洲av无码潮喷在线观看| 亚欧免费视频一区二区三区| 亚洲七久久之综合七久久| 五月天婷亚洲天综合网精品偷| 精品97国产免费人成视频| 亚洲电影中文字幕| 在线观看免费人成视频色9| 老牛精品亚洲成av人片| 亚洲综合精品网站在线观看| 91大神在线免费观看| 亚洲精华国产精华精华液好用| 精品国产人成亚洲区| 99在线观看免费视频| 亚洲国产AV无码一区二区三区| 亚洲真人无码永久在线| 18禁网站免费无遮挡无码中文| 亚洲第一成年免费网站| 国产亚洲精品精华液| 最新免费jlzzjlzz在线播放| 插鸡网站在线播放免费观看| 亚洲一本之道高清乱码| MM131亚洲国产美女久久 |