package org.hsweb.web.core.session.simple; import org.hsweb.web.bean.po.user.User; import org.hsweb.web.core.session.HttpSessionManager; import org.hsweb.web.core.utils.WebUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class UserLoginOutListener implements HttpSessionListener { private Logger logger = LoggerFactory.getLogger(this.getClass()); private HttpSessionManager httpSessionManager; /* Session创建事件 */ public void sessionCreated(HttpSessionEvent se) { logger.info("session created:" + se.getSession().getId()); } /* Session失效事件 */ public void sessionDestroyed(HttpSessionEvent se) { HttpSession session = se.getSession(); try { User user = WebUtil.getLoginUser(session); if (user != null) { httpSessionManager.removeUser(user.getId()); } } catch (Exception e) { logger.error("remove session or user error!", e); } } public void setHttpSessionManager(HttpSessionManager httpSessionManager) { this.httpSessionManager = httpSessionManager; } }