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
            
        }
    
    }
  • 相关阅读:
    android开发中提示:requires permission android.permission write_settings解决方法
    TRX(腾讯通)与OA集成
    windows下Tomcat指定jdk并部署到系统服务设置开机启动
    如何配置Tomcat服务器环境
    IntelliJ IDEA 工具使用
    AOP切面操作
    Spring Boot中使用AOP面向切面
    sun.misc jar包
    Excel导出数据库数据
    FreeMarker js 获取后台设置的request、session
  • 原文地址:https://www.cnblogs.com/zrui-xyu/p/4936899.html
Copyright © 2011-2022 走看看