zoukankan      html  css  js  c++  java
  • session用户账号认证(一个用户登陆,踢出前一个用户)

    在web.xml中配置:

    <listener>
        <listener-class>cn.edu.hbcf.common.listener.SessionAttributeListener</listener-class>
      </listener>

    然后写一个实体类:

    package cn.edu.hbcf.common.listener;
    
    import java.util.Map;
    import java.util.concurrent.ConcurrentHashMap;
    
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpSessionAttributeListener;
    import javax.servlet.http.HttpSessionBindingEvent;
    
    import cn.edu.hbcf.common.constants.WebConstants;
    import cn.edu.hbcf.privilege.pojo.BaseUsers;
    
    public class SessionAttributeListener implements HttpSessionAttributeListener {
    
         public static Map<String, HttpSession> sessionMap=new ConcurrentHashMap<String, HttpSession>();  
         @Override 
         public void attributeAdded(HttpSessionBindingEvent arg0) { 
             if(arg0.getName().equals(WebConstants.CURRENT_USER)){
                // Enumeration session = arg0.getSession().getServletContext().getAttributeNames();
                 HttpSession session = arg0.getSession();
            //     ServletContext application = session.getServletContext();
                 BaseUsers user = (BaseUsers)session.getAttribute(WebConstants.CURRENT_USER);
                 if(sessionMap.containsKey(user.getAccount())){//踢掉前一次登录    
                     try {
                        HttpSession session2=sessionMap.remove(user.getAccount());    
                         session2.invalidate();
                    } catch (Exception e) {
                    }   
                    // application.removeAttribute(user.getAccount());
                }   
                sessionMap.put(user.getAccount(), session);  
            //    application.setAttribute(user.getAccount(), user);
             }
            
         }
        @Override
        public void attributeRemoved(HttpSessionBindingEvent arg0) {
        }
        @Override
        public void attributeReplaced(HttpSessionBindingEvent se) {
            // TODO Auto-generated method stub
            
        }
    
    }
  • 相关阅读:
    kafka作业详解(HTML+Nginx+ngx_kafka_module+Kafka)
    Zookeeper知识点总结
    用CocoaPods做iOS程序的依赖管理
    iOS 正则表达式
    iOS 自定义UITabBarController
    iOS 同一UILabel改变数字的颜色
    iOS 自定义字体
    iOS 修改状态条颜色
    iOS 过滤掉HTML标签
    iOS UILabel自适应
  • 原文地址:https://www.cnblogs.com/zrui-xyu/p/4936899.html
Copyright © 2011-2022 走看看