一个对HttpSession用户进行管理的类

   1. public class SessionCounter implements HttpSessionListener{  
   2.  
   3.     private static List<HttpSession> sessionsList = Collections.synchronizedList(new LinkedList<HttpSession>()); 
   4.  
   5.  
   6.     @Override 
   7.     public void sessionCreated(HttpSessionEvent event) { 
   8.     } 
   9.  
  10.     /**
  11.      * session销毁时从sessionList移除
  12.      */ 
  13.     @Override 
  14.     public void sessionDestroyed(HttpSessionEvent event) { 
  15.         LoginUser userObject = null; 
  16.         if (SCutil.isNotEmpty(event.getSession().getAttribute("userObject"))) { 
  17.             userObject = (LoginUser) event.getSession().getAttribute("userObject"); 
  18.         } 
  19.  
  20.         sessionsList.remove(event.getSession()); 
  21.          
  22.         Long userId = null; 
  23.         if(userObject != null){ 
  24.             userId = userObject.getUserId(); 
  25.         } 
  26.         if(userId != null && userId != -1 ){ 
  27.             SCutil.Println(DateUtil.getDateTime()+":用户被T除,ID为:"+userId); 
  28.             //加入到T除队列 
  29.             WaitForKillContainer.addUserId(userId); 
  30.         } 
  31.  
  32.     }    
  33.  
  34.     /**
  35.      * 清除在线注册用户信息
  36.      * @param se
  37.      */ 
  38.     public static void destroySession(HttpSession se) { 
  39.         LoginUser userObject = (LoginUser) se.getAttribute("userObject"); 
  40.         if (userObject != null) { 
  41.             WaitForKillContainer.addUserId(Long.parseLong(userObject.getUserId())); 
  42.             se.removeAttribute("userObject"); 
  43.         } 
  44.     } 
  45.  
  46.     /**
  47.      * 用户登陆时加入sessionList
  48.      * @param session
  49.      * @return
  50.      */ 
  51.     public static Users createSession(HttpSession session) { 
  52.         LoginUser userObject = (LoginUser) session.getAttribute("userObject"); 
  53.         Users eu = null; 
  54.         eu = UserService.UpdateUserLoginFre(userObject); 
  55.         userObject.setUserName(eu.getUserName()); 
  56.         userObject.setUserId(eu.getUserId() + "");   
  57.         sessionsList.add(session); 
  58.         return eu; 
  59.     } 
  60. } 

你可能感兴趣的:(Httpsession)