计算使用特定 java EE JSF Web 应用程序的活跃用户数量的最佳方式/模式是什么?
我知道的两种方法是 HttpSessionListener 和使用 JMX Web bean,如果有第三种更好的方法,我愿意接受建议。我只是想找出最优雅的解决方案。
非常感谢帮助
计算使用特定 java EE JSF Web 应用程序的活跃用户数量的最佳方式/模式是什么?
我知道的两种方法是 HttpSessionListener 和使用 JMX Web bean,如果有第三种更好的方法,我愿意接受建议。我只是想找出最优雅的解决方案。
非常感谢帮助
如果您想在不使用任何框架构建的简单 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 中定义侦听器类。