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
            
        }
    
    }
  • 相关阅读:
    本地计算机 上的 Redis Server 服务启动后停止
    RabbitMQ 命令行
    mysql ORDER BY 中文出现错误问题
    使用javascript纯前端导出excel
    软件测试概念学习
    excel控件只为简单写入数据表--github找到ExcelUtil笔记
    快速创建Spring web项目
    PQGrid商业化的表格组件
    mybatis传入参数为0被误认为是空字符串的解决方法
    MyBatis like报错
  • 原文地址:https://www.cnblogs.com/zrui-xyu/p/4936899.html
Copyright © 2011-2022 走看看