【问题标题】:Restore previous session's attribute恢复上一个会话的属性
【发布时间】:2013-02-28 12:45:48
【问题描述】:

假设,使用 username="ABC" 的登录,

部分数据在session中设置如下: session.setAttribute("mydata", mydata);

如果当前会话过期,用户将被重定向到登录页面。

现在,如果用户再次使用相同的用户名(“ABC”)登录,

我们可以检索上一个会话的属性,以便用户可以继续他的工作吗?

请建议我检索前一会话数据的可能解决方案。 谢谢。

【问题讨论】:

    标签: java spring jakarta-ee web session-timeout


    【解决方案1】:

    我不相信这是可能的。但是,您始终可以创建一个信号量,您的应用可以在用户登录时对其进行检查,如果已经有一个现有的用户会话正在运行,则使会话无效。

    如果您在非集群环境中运行,此信号量可以像 Java 静态变量一样简单,或者更好的方法是在数据库表中设置标志,特别是如果您在集群环境中运行。

    【讨论】:

      【解决方案2】:

      不可能,当会话过期时,它包含的所有内容都已失效。这是由容器控制的。

      【讨论】:

        【解决方案3】:

        您可以在会话属性过期之前将其保存到数据库中,然后在用户再次登录时将它们添加回新会话。

        【讨论】:

          猜你喜欢
          • 2018-05-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-13
          • 2020-05-21
          • 1970-01-01
          相关资源
          最近更新 更多