//package com.yckj.listener;
|
//
|
//import com.yckj.util.*;
|
//import com.yckj.dto.UserClient;
|
//import com.yckj.dto.User_inf;
|
//
|
//import javax.servlet.http.*;
|
//import java.util.Hashtable;
|
//import java.util.Map;
|
//
|
///**
|
// * @Description :
|
// * @date 2020/09/11
|
// **/
|
//public class LoginSessionListener implements HttpSessionListener, HttpSessionAttributeListener {
|
//
|
// private static Map<String, HttpSession> onlineUsers = new Hashtable<String, HttpSession>();
|
//
|
// private static final String SESSION_BEAN = "user";
|
//
|
// /**
|
// * Session添加了一个属性时触发: 当添加了user属性到Session中(登录时才有)触发
|
// *
|
// * */
|
// @Override
|
// public void attributeAdded(HttpSessionBindingEvent event) {
|
// //获取Session属性的key
|
// String attrName = event.getName();
|
// System.out.println("Session中添加了属性"+attrName);
|
// if("user".equals(attrName)){
|
// HttpSession session = event.getSession();
|
// User_inf user = (User_inf) session.getAttribute("user");
|
// //查看线上用户是否包含当前用户
|
// if(onlineUsers.containsKey(user.getUName())){ //包含
|
// Map<String, UserClient> userMap = (Map) ActionUtil.getApplication().getAttribute("users");
|
// // if(userMap.containsKey(user.getUName())){ //包含
|
// //清除用户之前的Session
|
// HttpSession oldSession = onlineUsers.get(user.getUName());
|
// oldSession.invalidate();
|
// }
|
// onlineUsers.put(user.getUName(),session);
|
// }
|
// }
|
//
|
//
|
//
|
// /**Session移除了一个属性时触发*/
|
// @Override
|
// public void attributeRemoved(HttpSessionBindingEvent event) {
|
//
|
// }
|
//
|
// /**Session移除了一个属性时触发*/
|
// @Override
|
// public void attributeReplaced(HttpSessionBindingEvent event) {
|
//
|
// }
|
//
|
// /**Session创建时调用*/
|
// @Override
|
// public void sessionCreated(HttpSessionEvent se) {
|
//
|
// }
|
//
|
// /**Session调用invalidate方法时触发*/
|
// @Override
|
// public void sessionDestroyed(HttpSessionEvent se) {
|
// //如果退出登录,从map中移除
|
// HttpSession session = se.getSession();
|
// onlineUsers.remove(((User_inf)session.getAttribute("user")).getUName());
|
// System.out.println("Session调用invalidate方法时触发-"+((User_inf)session.getAttribute("user")).getUName());
|
// }
|
//}
|