2013-04-17 109 views
1

用於統計使用特定Java EE JSF Web應用程序的活動用戶數量的最佳方法/模式是什麼?計算Java EE Web應用程序中用戶數量的最佳方法

我知道的兩種方法是HttpSessionListener和使用JMX網絡bean,如果有第三種更好的方式,我願意接受建議。我只是想弄清楚最優雅的解決方案。

幫助深表感謝

+1

「使用」在同一時間?經過一段時間?哪一個? – 2013-04-17 13:20:34

+0

你有什麼?你在使用什麼框架/技術?請多關於技術堆棧。 – gaborsch

+0

如果我找出在特定實例(現在)有多少用戶,我可以輕鬆保存數據並計算特定時段內的用戶數量。所以要回答你的問題,立即使用(活躍用戶)....抱歉不清楚。 – RegisteredUser

回答

4

如果你想在簡單的Java Web應用程序,而無需使用任何框架構建的同時跟蹤活躍用戶的數量,然後做到這一點的標準方法是實現HttpSessionListener。下面的代碼僅僅是您可以實現它的方式的參考。

import java.util.concurrent.atomic.AtomicInteger; 

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

public class ActiveUserCounter implements HttpSessionListener { 

     private static AtomicInteger activeSessions = new AtomicInteger();  

     public void sessionCreated(HttpSessionEvent se) { 
       activeSessions.incrementAndGet(); 
     } 

     public void sessionDestroyed(HttpSessionEvent se) { 
       if(activeSessions.get() > 0) 
         activeSessions.decrementAndGet(); 
     } 

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

在web.xml中定義監聽器類。

+0

如果您正在計算活動會話,這是一個好主意。但我們仍然不知道OP是否想要。 – gaborsch

+2

這就是我用*開始回答的原因「如果您想同時跟蹤活動用戶的數量」*! – NINCOMPOOP

+0

OK,np :)足夠公平... – gaborsch

相關問題