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

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

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

    posts - 120,  comments - 19,  trackbacks - 0
    在Servlet2.3規(guī)范中,Web應(yīng)用事件是新增加的部分。它讓你能最大程度地控制你的Web應(yīng)用。在本文中,我們將學(xué)習(xí)兩個(gè)很重要的應(yīng)用事件:

    應(yīng)用的啟動(dòng)和停止

    Session的創(chuàng)建和失效如它們的名字那樣,應(yīng)用啟動(dòng)事件發(fā)生在你的應(yīng)用第一次被servlet容器裝載和啟動(dòng)的時(shí)候;停止事件發(fā)生在Web應(yīng)用停止的時(shí)候。

    Session創(chuàng)建事件發(fā)生在每次一個(gè)新的session創(chuàng)建的時(shí)候,類似地Session失效事件發(fā)生在每次一個(gè)Session失效的時(shí)候。為了使用這些Web應(yīng)用事件為你做些有用的事情,我們必須創(chuàng)建和使用一些特殊的“監(jiān)聽”類。下面,我們將研究這些監(jiān)聽類到地是什么以及我們?nèi)绾稳ナ褂盟鼈儭?br />
    監(jiān)聽類:

    它們是實(shí)現(xiàn)了下邊兩個(gè)接口中任何一個(gè)接口的簡單的java類:

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


    如果你想讓你的類監(jiān)聽?wèi)?yīng)用的啟動(dòng)和停止事件,你就得實(shí)現(xiàn)ServletContextListener接口;如果你想讓你的類去監(jiān)聽Session的創(chuàng)建和失效事件,那你就得實(shí)現(xiàn)HttpSessionListener接口。 讓我們看看在這些接口中你必須要實(shí)現(xiàn)的方法。

    1.ServletContextListener :

    接口包括如下兩個(gè)方法:

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


    如果你實(shí)現(xiàn)了一個(gè)接口,那你就必須實(shí)現(xiàn)它所有的方法。因此,如果你想利用應(yīng)用的啟動(dòng)和停止事件,你就需要?jiǎng)?chuàng)建一個(gè)Java類并實(shí)現(xiàn)ServletContextListener接口。下邊是這樣的一個(gè)類的例子:

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


    在上邊的代碼中,ApplicationWatch類實(shí)現(xiàn)了ServletContextListener接口。它實(shí)現(xiàn)了接口中的兩個(gè)方法,但只用了其中的一個(gè)方法,另一個(gè)方法中沒有寫任何代碼。這個(gè)類把應(yīng)用啟動(dòng)的時(shí)間記錄在一個(gè)可以從其它應(yīng)用類中存取應(yīng)用啟動(dòng)時(shí)間的public static變量中。

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

    2.HttpSessionListener :

    這個(gè)接口也只包含兩個(gè)方法,分別對(duì)應(yīng)于Session的創(chuàng)建和失效:

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


    如上邊的ApplicationWatch例子那樣,我們也創(chuàng)建了一個(gè)實(shí)現(xiàn)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創(chuàng)建事件 */
    public void sessionCreated
    (HttpSessionEvent se)
    {
           activeSessions++;
    }
    /* Session失效事件 */
    public void sessionDestroyed
    (HttpSessionEvent se)
    {
    if(activeSessions>0)activeSessions--;
    }
    
    public static int getActiveSessions()
    {
    return activeSessions;
    }
    }


    在上邊的代碼中,SessionCounter類實(shí)現(xiàn)了HttpSessionListener接口,其目的是計(jì)算活動(dòng)會(huì)話的數(shù)量。

    好了,我們已經(jīng)學(xué)習(xí)了什么是Web應(yīng)用事件,有什么接口可以用以及看到了一些實(shí)現(xiàn)這些接口的例子。讓我們看看如何告訴應(yīng)用服務(wù)器我們有這些監(jiān)聽類。

    Web.xml :

    我們通過把類路徑加入/WEB-INF/web.xml文件的標(biāo)簽中來告訴服務(wù)器我們的監(jiān)聽類。下邊是一個(gè)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文件中聲明監(jiān)聽類是非常簡單的。現(xiàn)在,每次的服務(wù)器的啟動(dòng)和停止,會(huì)話的創(chuàng)建和失效,配置好的監(jiān)聽類的相應(yīng)的方法就會(huì)被調(diào)用。

    posted on 2006-01-25 10:11 阿成 閱讀(238) 評(píng)論(0)  編輯  收藏 所屬分類: J2EE
    主站蜘蛛池模板: 114级毛片免费观看| 国产性生交xxxxx免费| 亚洲制服丝袜第一页| 大学生一级特黄的免费大片视频| 校园亚洲春色另类小说合集| 亚洲国产a∨无码中文777| 国产精品成人免费一区二区 | 亚洲视频手机在线| 成全视频在线观看免费高清动漫视频下载 | 国产午夜免费福利红片| 在线观看特色大片免费网站| 亚洲综合一区二区三区四区五区| 亚洲国产精品无码久久九九| 免费精品无码AV片在线观看| 国产成人高清亚洲一区久久| 亚洲视频在线免费观看| 又粗又硬免费毛片| 2021国产精品成人免费视频| 国产精品内射视频免费| 亚洲熟妇丰满xxxxx| 亚洲国语精品自产拍在线观看| 在线观着免费观看国产黄| 99久热只有精品视频免费看| 直接进入免费看黄的网站| 亚洲成a人片在线观看中文!!!| 一本色道久久88亚洲综合| 91免费人成网站在线观看18| 好男人资源在线WWW免费| 亚洲综合小说另类图片动图 | 亚洲女人初试黑人巨高清| 自拍偷自拍亚洲精品被多人伦好爽 | 免费一级毛片在线播放视频免费观看永久 | 亚洲五月综合缴情婷婷| 国产精一品亚洲二区在线播放| 国产自产拍精品视频免费看| 最近高清中文字幕免费| 成人片黄网站色大片免费观看APP| 亚洲av永久无码天堂网| 亚洲国产精品无码久久久| 国产亚洲人成网站观看| 亚洲国产成人久久综合碰|