使用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{ } } }