使用HttpSessionListener接口可监听session的创建和失效
session是在用户第一次访问页面时创建
在session超时或调用request.getSession().invalidate()时失效
因此利用HttpSessionListener接口可方便的做到几个功能
1、统计在线用户
2、限定账号的同时登录个数
3、记录用户退出时间
以下是目前项目的代码,实现的是限定账号的同时登录个数
public class MySessionListener implements HttpSessionListener{ /** * <p>Title: sessionCreated</p> * <p>Description: </p> * @param se * @see javax.servlet.http.HttpSessionListener#sessionCreated(javax.servlet.http.HttpSessionEvent) */ @Override public void sessionCreated(HttpSessionEvent se) { int i = 0; } /** * <p>Title: sessionDestroyed</p> * <p>Description: </p> * @param se * @see javax.servlet.http.HttpSessionListener#sessionDestroyed(javax.servlet.http.HttpSessionEvent) */ @Override public void sessionDestroyed(HttpSessionEvent se) { User userInfo = (User)se.getSession().getAttribute(Constants.SESSION_USER_INFO); if(null != userInfo){ //该账户的在线人数减一 UserService userService = (UserService) SpringContextUtil.getBean("userService"); userService.UpdateOnlineNum(userInfo.getLoginName(), -1); } else{ } } }
时间: 2024-12-28 22:49:38