0

我有一个使用 spring/hibernate 的 web 应用程序。我有一个要求。我在会话中保留一些信息。在会话超时之前,我需要备份所有会话对象,并且一旦创建新会话,我需要再次将会话对象放回会话中。会话超时后,将向用户显示登录页面,一旦用户登录,我需要从备份中获取已登录用户的存储会话信息并保留在会话中。

两个实现上面的东西我需要实现 HttpSessionListener。一方面,我如何备份所有登录用户的所有会话对象。一旦创建了新会话,我需要再次从备份中获取登录用户的会话对象并保留在会话中。请建议我的方法。

public class MySessionListener implements HttpSessionListener {

   @Override
    public void sessionCreated(HttpSessionEvent event) {
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent event) {
    }
}
4

2 回答 2

0

Servlet API 不会为您提供列出所有有效会话对象的方法。你必须抓住他们。作为创造者,知道这一点应该不难。

对于备份,数据库似乎是完美的。sessionDestroyed您可以在该特定用户的方法中写入数据库。在sessionCreated方法中,您可以从数据库中检索该用户的值。

参考资料:如何获取 Web 应用程序中所有 httpsession 对象的列表

于 2013-06-04T11:58:29.720 回答
0

我认为您应该将数据存储到数据库中,而不是这样。以这种方式维护数据并不是一个好方法。我不知道您的申请要求。但是在会话过期后设置和删除属性时设置数据的正确方法。

如果您的应用程序涉及安全性,它将创建安全线程。用正确的方法和模式做好编码,而不是用非常快的结果实现小事情。

于 2013-06-04T11:57:24.980 回答