您的位置:首页 > 其它

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

2013-01-05 18:59 246 查看
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: