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删除就行。

posted @ 2020-07-07 19:15  赵广陆  阅读(53)  评论(0编辑  收藏  举报