增加以下代码:
登录中:
//用户信息
loginhou hou = loginhoumapper.findbyname(name);
//获得全局变量中增加用户信息
ServletContext sc = session.getServletContext();
Map map = (Map) sc.getAttribute("loginhous" );
map.put(hou.getId(), hou);
session监听器中:
public void sessionDestroyed(HttpSessionEvent se) {
HttpSession session = se.getSession();
loginhou loginhou = (loginhou) session.getAttribute("loginhou" );
// 获得全局变量中删除用户信息
ServletContext sc = session.getServletContext();
Map map = (Map ) sc.getAttribute("loginhous" );
map.remove(loginhou.getId());
}
ServletContext监听器中:
public void contextInitialized(ServletContextEvent arg0) {
/**
* 启动服务器时,
* 往ServletContext对象set(初始化)一个对象,
* 这个对象的含义是,
* 保存所有在线后台用户的信息
* 结构:
* ServletContext 全应用变量
* ↓ 绑定名: loginhous
* Map 所有后台用户的信息
* ↓ 绑定名: loginhous的id
* loginhou 用户的信息
*/
ServletContext sc = arg0.getServletContext();
Map map = new HashMap<String, loginhou>();
sc.setAttribute( "loginhous", map);
}