session 用户是否第一次登录及处理.txt

package com.mobile.util;

import   javax.servlet.http.*;
import   java.util.*;

public   class   SessionListener   implements   HttpSessionListener{
        private   static   HashMap   bUserInfo   =   new   HashMap();//保存sessionID和username的映射
        /**以下是实现HttpSessionListener中的方法**/
        public   void   sessionCreated(HttpSessionEvent   se){
        }
       
        public   void   sessionDestroyed(HttpSessionEvent   se){
         bUserInfo.remove(   se.getSession().getId()   );
        }
        /*
          *   isAlreadyEnter-用于判断用户是否已经登录以及相应的处理方法
          *   @param   sUserName   String-登录的用户名称
          *   @return   boolean-该用户是否已经登录过的标志
          */
        public   static   boolean   isAlreadyEnter(HttpSession   session,String  bUserName){
                boolean   flag   =   false;
                if(bUserInfo.containsKey(bUserName)){//如果该用户已经登录过,则使上次登录的用户掉线(依据使用户名是否在bUserName中)
                 flag   =   true;
                        //遍历原来的hUserName,删除原用户名对应的sessionID(即删除原来的sessionID和bUserInfo)
                        Iterator   iter   =   bUserInfo.entrySet().iterator();
                        while   (iter.hasNext())   {
                                Map.Entry   entry   =   (Map.Entry)iter.next();
                                Object   key   =   entry.getKey();
                                Object   val   =   entry.getValue();
                                if(   (   (String)val   ).equals(bUserName)   ){
                                 bUserInfo.remove(key);
                                }
                                System.out.println( "---bUserInfo   =   "   +   bUserInfo);
                        }
                        bUserInfo.put(  bUserName,mid  );//添加现在的sessionID和bUserInfo
                        System.out.println( "bUserInfo   =   "   +   bUserInfo);
                }
                else{//如果该用户没登录过,直接添加现在的sessionID和username
                        flag   =   false;
                        bUserInfo.put(bUserName,mid);
                        System.out.println( "bUserInfo   =   "   +   bUserInfo);
                }
                return   flag;
        }
        /*
          *   isOnline-用于判断用户是否在线
          *   @param   session   HttpSession-登录的用户名称
          *   @return   boolean-该用户是否在线的标志
          */
        public   static   boolean   isOnline(HttpSession   session){
                boolean   flag   =   true;
                if(   bUserInfo.containsKey(   session.getId()   )   ){
                        flag   =   true;
                }
                else{
                        flag   =   false;
                }
                return   flag;
        }
       
}

 

 

 

 


web.xml

<listener>
  <listener-class>com.mobile.util.SessionListener</listener-class>
 </listener>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值