读书人

系统记要当前在线用户列表

发布时间: 2012-11-07 09:56:10 作者: rapoo

系统记录当前在线用户列表

public class SessionListener implements HttpSessionListener,HttpSessionAttributeListener {private static HashMap<String, SysUser> userMap = new HashMap<String, SysUser>();// 保存sessionID和user的映射private static HashMap<String, HttpSession> sessionMap = new HashMap<String, HttpSession>();// 保存sessionID/** 以下是实现HttpSessionListener中的方法* *//* 创建session时 */public void sessionCreated(HttpSessionEvent se) {}/* session失效时,删除列表中用户信息 */public void sessionDestroyed(HttpSessionEvent se) {userMap.remove(se.getSession().getId());sessionMap.remove(se.getSession().getId());}/** 以下是实现HttpSessionAttributeListener中的方法* *//* 调用session.setAttribute( "user", "**** ")时,添加用户信息到列表中 */public void attributeAdded(HttpSessionBindingEvent se) {if (se.getName().equals("user")) {userMap.put(se.getSession().getId(), (SysUser) se.getValue());}}/* 调用session.removeAttribute( "user", "**** ")时,删除列表中用户信息 */public void attributeRemoved(HttpSessionBindingEvent se) {if (se.getName().equals("user")) {LoginServlet.userLogout(se.getSession());userMap.remove(se.getSession().getId());}}/* 调用更改 "user "属性值时同时更改列表中用户信息 */@SuppressWarnings("unchecked")public void attributeReplaced(HttpSessionBindingEvent se) {}/* 返回用户列表 */public static HashMap getList() {return userMap;}public int getOnlineNumber() {return userMap.size();}public synchronized static HashMap<String, HttpSession> getSessionMap() {return sessionMap;}public static HashMap<String, SysUser> getUserMap() {return userMap;}

读书人网 >软件架构设计

热点推荐