在会话超时之前备份会话对象?

时间:2013-06-04 11:41:55

标签: java spring hibernate session web

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

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

public class MySessionListener implements HttpSessionListener {

   @Override
    public void sessionCreated(HttpSessionEvent event) {
    }

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

为了进行备份,数据库似乎是最完美的。您可以使用sessionDestroyed方法为该特定用户写入数据库。在sessionCreated方法中,您可以从DB检索该用户的值。

参考文献:how do i get a list of all httpsession objects in a web-application