溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaWeb中怎么實現(xiàn)一個監(jiān)聽器

發(fā)布時間:2021-08-05 14:08:41 來源:億速云 閱讀:222 作者:Leah 欄目:開發(fā)技術

JavaWeb中怎么實現(xiàn)一個監(jiān)聽器,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

1. 監(jiān)聽器

實現(xiàn)一個監(jiān)聽器的接口;(有n種監(jiān)聽器)

1.1 編寫一個監(jiān)聽器(實現(xiàn)監(jiān)聽器接口)

OnlineCountListener .java

package com.tian.listener;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

//統(tǒng)計網(wǎng)站在線人數(shù) : 統(tǒng)計session
public class OnlineCountListener implements HttpSessionListener {

    //創(chuàng)建session監(jiān)聽: 看你的一舉一動
    //一旦創(chuàng)建Session就會觸發(fā)一次這個事件!
    public void sessionCreated(HttpSessionEvent se) {
        ServletContext ctx = se.getSession().getServletContext();

        System.out.println(se.getSession().getId());

        Integer onlineCount = (Integer) ctx.getAttribute("OnlineCount");

        if (onlineCount == null) {
            onlineCount = new Integer(1);
        } else {
            int count = onlineCount.intValue();
            onlineCount = new Integer(count + 1);
        }

        ctx.setAttribute("OnlineCount", onlineCount);

    }

    //銷毀session監(jiān)聽
    //一旦銷毀Session就會觸發(fā)一次這個事件!
    public void sessionDestroyed(HttpSessionEvent se) {
        ServletContext ctx = se.getSession().getServletContext();

        Integer onlineCount = (Integer) ctx.getAttribute("OnlineCount");

        if (onlineCount == null) {
            onlineCount = new Integer(0);
        } else {
            int count = onlineCount.intValue();
            onlineCount = new Integer(count - 1);
        }

        ctx.setAttribute("OnlineCount", onlineCount);

    }
    /*
    Session銷毀:
    1. 手動銷毀  getSession().invalidate();
    2. 自動銷毀
	web.xml
	    
    <session-config>
        <!--1分鐘后session自動銷毀-->
        <session-timeout>1</session-timeout>
    </session-config>

     */
}

1.2 配置監(jiān)聽器

web.xml

<!--注冊監(jiān)聽器-->
    <listener>
        <listener-class>com.tian.listener.OnlineCountListener</listener-class>
    </listener>

1.3 啟動服務器

JavaWeb中怎么實現(xiàn)一個監(jiān)聽器

JavaWeb中怎么實現(xiàn)一個監(jiān)聽器

JavaWeb中怎么實現(xiàn)一個監(jiān)聽器

看完上述內(nèi)容,你們掌握JavaWeb中怎么實現(xiàn)一個監(jiān)聽器的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI