我有一个使用spring / hibernate的Web应用程序。我有一个要求。我在会议中保留一些信息。在会话超时之前,我需要备份所有会话对象,并且我需要在创建新会话后再将会话对象放回会话中。一旦会话超时,用户将显示登录页面,一旦用户登录,我需要从备份中获取登录用户的存储会话信息并保持在会话中。
我需要实现HttpSessionListener的两个实现。在一个方面,我如何备份登录的所有用户的所有会话对象。一旦创建了新会话,我再次需要从备份中获取登录用户的会话对象并保持在会话中。请建议我的方法。
public class MySessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent event) {
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
}
}
答案 0 :(得分:0)
我认为您应该将数据存储到数据库而不是这样。以这种方式维护数据不是好方法。我不了解您的申请要求。但是在会话设置和设置时设置数据的正确方法会话过期后删除属性。
如果您的应用程序涉及安全性,它将创建安全线程。用正确的方法和模式做好编码,而不是用非常快的结果来实现小事。
答案 1 :(得分:0)
Servlet API不会为您提供列出所有有效会话对象的方法。你必须抓住他们。作为创造者,了解这一点应该不难。
为了进行备份,数据库似乎是最完美的。您可以使用sessionDestroyed
方法为该特定用户写入数据库。在sessionCreated
方法中,您可以从DB检索该用户的值。
参考文献:how do i get a list of all httpsession objects in a web-application