我的 Web 应用程序是使用 servlet 和 struts 构建的。我希望跟踪应用程序的 session 登录总数。
如果登录次数超过一定限制,我将拒绝登录。如何将 session 总数从 HttpSession 传递到我的 struts Action 类或 Servlet?
最佳答案
public class HttpSessionListener implements HttpSessionListener {
private static final AtomicInteger sessionCount = new AtomicInteger(0);
@Override
public void sessionCreated(HttpSessionEvent event) {
sessionCount.incrementAndGet();
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
sessionCount.decrementAndGet();
}
public static int getTotalSessionCount() {
return sessionCount.get();
}
}
原始整数不是线程安全的。通过上述解决方案,您可以使用 HttpSessionListener.getTotalSessionCount() 访问打开 session 的计数。代码的型号来自this answer .
关于java - 使用 HttpSessionListener 跟踪 Web 应用程序中的 session 总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21552253/