whyczh
2021-06-03 ab03d93d2a60307cc30d33215fff12a55fc41cec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//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());
//    }
//}