【问题标题】:How to clean session attribute from all active session in java?java - 如何从java中的所有活动会话中清除会话属性?
【发布时间】:2009-06-26 03:33:06
【问题描述】:

目前我正在开发使用 JSP/Servlet 和 struts 框架的 web 项目。我们正在使用缓存机制。我想从特定事件的所有活动会话中清除一些会话属性(例如,在刷新缓存的情况下)。那么实现相同的最佳方法是什么?

【问题讨论】:

    标签: java jsp servlets jakarta-ee session-variables


    【解决方案1】:

    让我猜猜……你是在将缓存中的值存储到会话变量中,对吧?

    最简单的方法是在每次需要时从缓存中检索值,并让缓存管理到期/重新加载等。这是缓存的责任。

    换句话说,不要将缓存中的值存储到会话对象中。当您使用缓存时,它将毫无用处。

    干杯

    【讨论】:

      【解决方案2】:

      您需要提供一个实现HttpSessionActivationListener(服务器api的一部分)接口的类并在web.xml中注册它。

      然后您可以跟踪活动会话并使用该信息来访问会话并执行属性更新。实际上,实现类将是一个单例,因此您必须在会话跟踪期间仔细处理同步问题。

      当然,如果您有一个具有多个节点的集群环境,属性更改的传播可能会相当复杂。

      【讨论】:

        猜你喜欢
        • 2017-12-10
        • 1970-01-01
        • 2021-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多