• 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
            
        }
    
    }
  • 相关阅读:
    小a和uim之大逃离(dp)
    c++stl应用入门
    tar: 从成员名中删除开头的“/”
    yii中rights安装
    python中operator.itemgetter
    python中时间和时区
    python --那些你应该知道的知识点
    rsync拉取远程文件
    django中时区设置
    django中添加用户
  • 原文地址:https://www.cnblogs.com/zrui-xyu/p/4936899.html
Copyright © 2020-2023  润新知