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

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

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

    gembin

    OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

    HBase, Hadoop, ZooKeeper, Cassandra

    Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

    There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

    About Me

     

    利用HttpSessionListener實(shí)現(xiàn)網(wǎng)站在線人數(shù)統(tǒng)計(jì)功能

    利用HttpSessionListener實(shí)現(xiàn)網(wǎng)站在線人數(shù)統(tǒng)計(jì)功能
     
    在網(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的操作沒(méi)有及時(shí)執(zhí)行;網(wǎng)站上還經(jīng)常有一些內(nèi)容是不需要登錄就可以訪問(wèn)的,在這種情況下也無(wú)法使用上面的方法進(jìn)行在線人數(shù)統(tǒng)計(jì)。
      我們可以利用Servlet規(guī)范中定義的事件監(jiān)聽(tīng)器(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)聽(tīng)器,則會(huì)調(diào)用HttpSessionListener事件監(jiān)聽(tīng)器的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)聽(tīng)器的sessionDestroyed方法。
      可見(jiàn),對(duì)應(yīng)于一個(gè)用戶訪問(wèn)的開(kāi)始和結(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.    } 

      然后,編寫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.     } 

      再然后,把這個(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 2007-09-14 17:16 gembin 閱讀(3092) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(6)

    隨筆分類(440)

    隨筆檔案(378)

    文章檔案(6)

    新聞檔案(1)

    相冊(cè)

    收藏夾(9)

    Adobe

    Android

    AS3

    Blog-Links

    Build

    Design Pattern

    Eclipse

    Favorite Links

    Flickr

    Game Dev

    HBase

    Identity Management

    IT resources

    JEE

    Language

    OpenID

    OSGi

    SOA

    Version Control

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    free counters
    主站蜘蛛池模板: 国产午夜亚洲精品理论片不卡 | 国产精品亚洲片在线观看不卡| 色在线亚洲视频www| 中文成人久久久久影院免费观看| 成年美女黄网站18禁免费| 久久91亚洲精品中文字幕| 粉色视频免费入口| 99精品国产免费久久久久久下载| 亚洲一区二区三区AV无码| 亚洲av成人一区二区三区在线播放| 麻豆成人久久精品二区三区免费| 亚洲国产中文字幕在线观看| 亚洲国产区男人本色在线观看| 无码精品国产一区二区三区免费| www.亚洲一区| 亚洲欧美成aⅴ人在线观看| 84pao国产成视频免费播放| 国产亚洲大尺度无码无码专线 | 中字幕视频在线永久在线观看免费 | 亚洲电影一区二区| 国产精品小视频免费无限app| 免费黄色一级毛片| 亚洲区精品久久一区二区三区| 国产免费拔擦拔擦8X高清在线人| 亚洲国产成人爱av在线播放| 亚洲AV无码一区二区一二区| 免费可以在线看A∨网站| 91在线精品亚洲一区二区| 中文字幕在线免费看线人| 亚洲第一福利网站在线观看| 亚洲AV无码一区二区三区久久精品| 男女做羞羞的事视频免费观看无遮挡 | yellow视频免费看| 亚洲国产一区明星换脸| 国产午夜亚洲精品不卡| 免费高清在线爱做视频| 亚洲色无码专区一区| 成人片黄网站A毛片免费| 激情亚洲一区国产精品| 日韩精品免费一级视频| 亚洲成无码人在线观看|