JavaWeb用户信息管理系统-解决HttpSession超时销毁时的异常问题
1 创建监听器
/**
* 解决HttpSession被反复销毁的问题
*/
@WebListener
public class HttpSessionLifecycleListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
//获取ServletContext对象,然后将所对应的HttpSession删除掉
HttpSession session = se.getSession();
ServletContext servletContext = session.getServletContext();
Users users = (Users) session.getAttribute(Constants.USER_SESSION_KEY);
servletContext.removeAttribute(users.getUserid()+"");
}
}
因为当两个游览器同时访问,有一个账号登录产生session之后超时销毁了,但是另一个游览器登录拿到了session(此时的session以被销毁),因为只能一个地方登录所以要继续销毁,销毁掉销毁的session所以报异常,所以加个监听器监听销毁的session时我们就把httpsess删除就行。