HttpSessionListener 实现类 监听 session创建于销毁时的动作
监听 session创建于销毁时的动作 ,用于用户安全相关问题是的统计,注销等操作 使用方法: 在web.xml文件中添加listener <listener> <listener-class>路径.sessionlistener</listener-class> </listener> package com.fnic.cdnmgr.ui.security.listener; import javax.servlet.annotation.WebListener; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fnic.cdnmgr.sdk.comm.CDNException; import com.fnic.cdnmgr.sdk.comm.ConstComm; import com.fnic.cdnmgr.sdk.security.api.IUserInOutSrv; import com.fnic.cdnmgr.ui.security.cache.OnlineSessionCache; /** * Application Lifecycle Listener implementation class sessionlistener * */ @WebListener public class sessionlistener implements HttpSessionListener, HttpSessionAttributeListener { private static final Logger logger = LoggerFactory.getLogger(ConstComm.LOGGER_SC); private static IUserInOutSrv userInOutSrv; private static OnlineSessionCache onlineSessionCache; /** * Default constructor. */ public sessionlistener() { // TODO Auto-generated constructor stub } /** * @see HttpSessionAttributeListener#attributeRemoved(HttpSessionBindingEvent) */ @Override public void attributeRemoved(final HttpSessionBindingEvent arg0) { // TODO Auto-generated method stub } /** * @see HttpSessionAttributeListener#attributeAdded(HttpSessionBindingEvent) */ @Override public void attributeAdded(final HttpSessionBindingEvent arg0) { // TODO Auto-generated method stub } /** * @see HttpSessionAttributeListener#attributeReplaced(HttpSessionBindingEvent) */ @Override public void attributeReplaced(final HttpSessionBindingEvent arg0) { // TODO Auto-generated method stub } /** * @see HttpSessionListener#sessionCreated(HttpSessionEvent) */ @Override public void sessionCreated(final HttpSessionEvent arg0) { logger.debug("sessioncreated"); } /** * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent) */ @Override public void sessionDestroyed(final HttpSessionEvent event) { HttpSession session = event.getSession(); String tokenId = ""; if (session.getAttribute("loginToken") != null) { tokenId = session.getAttribute("loginToken").toString(); } try { userInOutSrv.logout(tokenId); } catch (Exception e) { e.printStackTrace(); } session.invalidate(); onlineSessionCache.deleteSession(session); } public static void setUserInOutSrv(final IUserInOutSrv userInOutSrv) { sessionlistener.userInOutSrv = userInOutSrv; } public static void setOnlineSessionCache(final OnlineSessionCache onlineSessionCache) { sessionlistener.onlineSessionCache = onlineSessionCache; } }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。