【发布时间】:2016-07-01 06:39:29
【问题描述】:
我在web.xml 中注册了HttpSessionListener 实现类,当应用程序启动时,sessionCreated() 方法被调用了两次。当我从应用程序注销时,sessionDestroyed() 正在调用,然后sessionCreated() 再次调用。为什么会这样?
public class SessionManager implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent httpSessionEvent) {
System.out.println("Session Creation called!!..");
}
@Override
public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
System.out.println("Session Destruction called!!..");
}
}
输出:
当应用程序启动时,它会打印两次“Session Creation called!!..”。当我注销时,它首先打印为“调用会话破坏!!..”,然后打印为“调用会话创建!!..”。
【问题讨论】:
-
我认为
sessionCreated()方法会在生成新会话时被调用。所以当你注销时,session.invalidate()会被调用,然后会为匿名用户创建一个新会话。 -
不应该这样发生。你能帮我解决我哪里出错了吗?
标签: java spring spring-mvc spring-session