首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

利用 HttpSessionListener 實現線上人數統計

     編輯:Java 相關知識

核心原理

透過實作 javax.servlet.http.HttpSessionListener 介面,在 Session 建立與銷毀時分別遞增/遞減計數器,即可即時掌握當前活躍 Session 數量,作為「線上人數」的近似值。

完整實作步驟

1. 撰寫監聽器類別

package SessionCount;
import javax.servlet.*;
import javax.servlet.http.*;

public class SessionCounter implements HttpSessionListener {
    private static int activeSessions = 0;

    public void sessionCreated(HttpSessionEvent se) {
        activeSessions++;
    }

    public void sessionDestroyed(HttpSessionEvent se) {
        if (activeSessions > 0) activeSessions--;
    }

    public static int getActiveSessions() {
        return activeSessions;
    }
}

將編譯後的 SessionCounter.class 放入 Web 應用的 WEB-INF/classes/SessionCount/ 目錄下。

2. 建立顯示頁面 (online.jsp)

<%@ page import="SessionCount.SessionCounter" %>
<html><body>
目前線上人數: <%= SessionCounter.getActiveSessions() %>
</body></html>

3. 註冊監聽器

在 WEB-INF/web.xml 中加入:

<listener>
  <listener-class>SessionCount.SessionCounter</listener-class>
</listener>

4. 重新啟動應用伺服器並驗證

存取 online.jsp 即可看到即時線上人數。注意:此計數方式僅統計有效 Session,若使用者關閉瀏覽器而未登出,Session 會在逾時後才被銷毀,數字可能略高於實際線上人數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved