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
        
    }

}

 

转载于:https://www.cnblogs.com/zrui-xyu/p/4936899.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值