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

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

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

    posts - 5,  comments - 1,  trackbacks - 0
    在網(wǎng)站中經(jīng)常需要進(jìn)行在線人數(shù)的統(tǒng)計(jì)。過(guò)去的一般做法是結(jié)合登錄和退出功能,即當(dāng)用戶輸入用戶名密碼進(jìn)行登錄的時(shí)候計(jì)數(shù)器加1,然后當(dāng)用戶點(diǎn)擊退出按鈕退出系統(tǒng)的時(shí)候計(jì)數(shù)器減1。這種處理方式存在一些缺點(diǎn),例如:用戶正常登錄后,可能會(huì)忘記點(diǎn)擊退出按鈕,而直接關(guān)閉瀏覽器,導(dǎo)致計(jì)數(shù)器減1的操作沒有及時(shí)執(zhí)行;網(wǎng)站上還經(jīng)常有一些內(nèi)容是不需要登錄就可以訪問(wèn)的,在這種情況下也無(wú)法使用上面的方法進(jìn)行在線人數(shù)統(tǒng)計(jì)。
      我們可以利用Servlet規(guī)范中定義的事件監(jiān)聽器(Listener)來(lái)解決這個(gè)問(wèn)題,實(shí)現(xiàn)更準(zhǔn)確的在線人數(shù)統(tǒng)計(jì)功能。對(duì)每一個(gè)正在訪問(wèn)的用戶,J2EE應(yīng)用服務(wù)器會(huì)為其建立一個(gè)對(duì)應(yīng)的HttpSession對(duì)象。當(dāng)一個(gè)瀏覽器第一次訪問(wèn)網(wǎng)站的時(shí)候,J2EE應(yīng)用服務(wù)器會(huì)新建一個(gè)HttpSession對(duì)象,并觸發(fā)HttpSession創(chuàng)建事件,如果注冊(cè)了HttpSessionListener事件監(jiān)聽器,則會(huì)調(diào)用HttpSessionListener事件監(jiān)聽器的sessionCreated方法。相反,當(dāng)這個(gè)瀏覽器訪問(wèn)結(jié)束超時(shí)的時(shí)候,J2EE應(yīng)用服務(wù)器會(huì)銷毀相應(yīng)的HttpSession對(duì)象,觸發(fā)HttpSession銷毀事件,同時(shí)調(diào)用所注冊(cè)HttpSessionListener事件監(jiān)聽器的sessionDestroyed方法。
      可見,對(duì)應(yīng)于一個(gè)用戶訪問(wèn)的開始和結(jié)束,相應(yīng)的有sessionCreated方法和sessionDestroyed方法執(zhí)行。這樣,我們只需要在HttpSessionListener實(shí)現(xiàn)類的sessionCreated方法中讓計(jì)數(shù)器加1,在sessionDestroyed方法中讓計(jì)數(shù)器減1,就輕松實(shí)現(xiàn)了網(wǎng)站在線人數(shù)的統(tǒng)計(jì)功能。
      下面就是利用HttpSessionListener實(shí)現(xiàn)在線人數(shù)統(tǒng)計(jì)的一個(gè)例子,這個(gè)例子已經(jīng)在中創(chuàng)軟件的J2EE應(yīng)用服務(wù)器InforWeb中測(cè)試通過(guò)。
      首先,編寫一個(gè)簡(jiǎn)單的計(jì)數(shù)器,代碼如下:
    1. package?gongfei.cmc.articles.onlinecounter;
    2. public?class?OnlineCounter?{
    3. ????private?static?long?online?=?0;????
    4. ????public?static?long?getOnline()?{
    5. ????????return?online;
    6. ????}????
    7. ????public?static?void?raise(){
    8. ????????online++;
    9. ????}?
    10. ????public?static?void?reduce(){
    11. ????????online--;
    12. ???}
    13. }

      然后,編寫HttpSessionListener實(shí)現(xiàn)類,在這個(gè)實(shí)現(xiàn)類的sessionCreated方法中調(diào)用OnlineCounter的raise方法,在sessionDestroyed方法中調(diào)用OnlineCounter的reduce方法,代碼如下:
    1. package?gongfei.cmc.articles.onlinecounter;
    2. import?javax.servlet.http.HttpSessionEvent;
    3. import?javax.servlet.http.HttpSessionListener;
    4. public?class?OnlineCounterListener?implements?HttpSessionListener?{
    5. ????public?void?sessionCreated(HttpSessionEvent?hse)?{
    6. ????????OnlineCounter.raise();
    7. ????}
    8. ????public?void?sessionDestroyed(HttpSessionEvent?hse)?{
    9. ????????OnlineCounter.reduce();
    10. ????}
    11. }

      再然后,把這個(gè)HttpSessionListener實(shí)現(xiàn)類注冊(cè)到網(wǎng)站應(yīng)用中,也就是在網(wǎng)站應(yīng)用的web.xml中加入如下內(nèi)容:
    1. <web-app>
    2. ????……
    3. ????<listener>
    4. ????????<listener-class>
    5. ????????????gongfei.cmc.articles.example.OnlineCounterListener
    6. ????????</listener-class>
    7. ????</listener>
    8. ????……
    9. </web-app>


    posted on 2006-07-25 17:39 herry 閱讀(206) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    有空多聯(lián)系~

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    收藏夾

    java

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 最新中文字幕电影免费观看| 亚洲成aⅴ人在线观看| 2021在线观看视频精品免费| 有码人妻在线免费看片| 精品丝袜国产自在线拍亚洲| 亚洲VA中文字幕无码一二三区 | 丝瓜app免费下载网址进入ios| 亚洲人成人网毛片在线播放| 亚洲高清在线观看| 亚洲AV日韩精品一区二区三区| 皇色在线视频免费网站| 久操视频免费观看| XXX2高清在线观看免费视频| 日本亚洲高清乱码中文在线观看| 亚洲专区中文字幕| 亚洲自偷精品视频自拍| 久久久青草青青亚洲国产免观 | 在线观看日本亚洲一区| 亚洲黄色免费网址| 亚洲成a人片在线观看无码 | 亚洲乱码卡一卡二卡三| 亚洲人成在线播放网站岛国| 亚洲欧洲∨国产一区二区三区| avtt亚洲天堂| 国产成人免费永久播放视频平台| 久久久久国产精品免费免费搜索 | 亚洲视频在线观看网址| 亚洲国产精品特色大片观看完整版 | 国内精品乱码卡1卡2卡3免费| 99在线免费观看视频| 男女作爱在线播放免费网站| 成人毛片100免费观看| 国产成人无码免费看片软件| 免费精品久久久久久中文字幕 | 在线观看日本免费a∨视频| 免费观看激色视频网站(性色)| 久久久久久国产精品免费免费男同| 中文成人久久久久影院免费观看| aa毛片免费全部播放完整| 色播在线永久免费视频网站| 免费无码又爽又刺激高潮软件|