java - 使用 HttpSessionListener 跟踪 Web 应用程序中的 session 总数

标签 java servlets struts

我的 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/

相关文章:

java - Websphere Portlet 迁移,DispatchAction 中缺少参数

java - 在图中使用循环寻路(每条边使用一次)

java - 为什么java认为这个方法是被声明的,而不是被调用的?

jquery - 如何在Bootstrap中使用AJAX发送表单数据?

java - 是否可以在没有 web.xml 的情况下设置 apache-cxf?

java - 我的 validator 表单出现 nullPointer 异常

jsp - 突出显示具有逻辑 :iterate 的交替行

java - 如何让递归算法在完成运行之前返回一个值?

java - 根据 double 数组对字符串数组进行排序

java - 为我的 WSDL 工作生成 Web 服务