Java Web 强制用户下线,在线用户数量

来源:互联网 发布:淘宝店家联系方式 编辑:程序博客网 时间:2024/05/22 00:21

 强制用户下线,目标注销该会话session。

Java Web页面注销登录结束整个会话

可以用上文的注销方式。不过问题来了,

怎么确定要注销的那个session。

1、自建一个继承自HttpSessionListener的监听器,可配置在we.xml中:

   <listener>  
    <listener-class>com.xhj.helper.SessionHelper</listener-class>  
  </listener>


package com.xhj.helper;
import javax.servlet.http.HttpSessionListener;  
import javax.servlet.http.HttpSessionEvent;  
  
public class SessionHelper implements HttpSessionListener {  
/* Session创建事件 */  
public void sessionCreated(HttpSessionEvent event) {  
}  
/* Session失效事件 */  
public void sessionDestroyed(HttpSessionEvent event) { 
LockHelper.moveSession(event.getSession());
}  
}

package com.xhj.helper;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpSession;
import com.xhj.pojo.Sys_user;

public class LockHelper {

static Map<String, HttpSession> map=new HashMap<String, HttpSession>();
public static void putSession(HttpSession session){
Sys_user user=(Sys_user)session.getAttribute("userSession");
map.put(user.getId(), session);
}
public static void moveSession(HttpSession session){
Sys_user user=(Sys_user)session.getAttribute("userSession");
map.remove(user.getId());
}
public static void destroyedSession(Sys_user user){
HttpSession session=map.get(user.getId());
session.invalidate();
}
}

2、当用户登录成功时调用 putSession(HttpSession session)方法

3、对于要强制注销的用户调用destroyedSession(Sys_user user)方法。

4、可以根据map,查看在线用户的具体信息。

0 0
原创粉丝点击