1

计算使用特定 java EE JSF Web 应用程序的活跃用户数量的最佳方式/模式是什么?

我知道的两种方法是 HttpSessionListener 和使用 JMX Web bean,如果有第三种更好的方法,我愿意接受建议。我只是想找出最优雅的解决方案。

非常感谢帮助

4

1 回答 1

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 中定义侦听器类。

于 2013-04-17T13:23:21.487 回答