请问为什么重启tomcat后 销毁的session比创建的session还要多,怎么解决?

来源:百度知道 编辑:UC知道 时间:2024/07/01 04:55:31
我写了一个session的监听器,当创建一个session的时候,人数就加一,销毁的时候人数减一,可是当重启服务器后,在线人数变成了负数?
public class SessionMangerListener implements HttpSessionListener {

public void sessionCreated(HttpSessionEvent se) {
ServletContext servletContext = se.getSession().getServletContext();
if (servletContext.getAttribute(Constants.ONLINE_NUM) == null) {
servletContext.setAttribute(Constants.ONLINE_NUM, 1);
} else {
servletContext.setAttribute(Constants.ONLINE_NUM, ((Integer) servletContext.getAttribute(Constants.ONLINE_NUM)) + 1);
}
}

public void sessionDestroyed(HttpSessionEvent se) {
ServletContext servletContext = se.getSession().getServletContext();
SessionFacade.removeUserSession(se.getSession().getId());
if (servletContext.getAttribute(Constants.ONLINE_NUM) != null) {
servletContext.setAttribute(Constants.ONLINE_NUM, ((Integer) se

那应该是因为再一定的时间范围内,重启的系统会继续沿用上一次的session池,放在服务器磁盘上的,这些会话是原来创建的

你session取值有没有问题啊?~如果用session.putValue("name","num")的话就不应该的哦~然后用session.getValue("name")就可得到值了。

你的程序(一个session的监听器)发上来看吧一定有问题