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