Listener监听在线用户数量
来源:互联网 发布:医院网络管理制度 编辑:程序博客网 时间:2024/05/08 21:53
一、在web.xml中注册监听类
<listener><listener-class>com.sasis.webapp.listener.OnLineUserListener</listener-class></listener>
二、OnLineUserListener.java操作在线人数,实时更新数据库
package com.sasis.webapp.listener;import java.sql.Timestamp;import java.util.Collection;import java.util.Collections;import java.util.Date;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;import org.springframework.context.ApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;import com.sasis.model.UserLoginLog;import com.sasis.service.UserLoginLogManager;public class OnLineUserListener implements HttpSessionListener {public OnLineUserListener() {}private static Map onlineUsers = Collections.synchronizedMap(new HashMap(100));public static int getCount() {return onlineUsers.size();}public static Collection getOnlineUsers() {return onlineUsers.values();}public static boolean isUserOnline(UserLoginLog userLoginLog) {if (onlineUsers.containsKey(userLoginLog.getUserName())) {return true;}return false;}public void deleteUser(UserLoginLog userLoginLog) {onlineUsers.remove(userLoginLog.getUserName());}public static void addUser(UserLoginLog userLoginLog) {onlineUsers.put(userLoginLog.getUserName(), userLoginLog);}public void sessionCreated(HttpSessionEvent hse) {}/**sessionDestroyed()方法在两种情况下调用1、web.xml中配置的过期时间,单位为min。过期调用<session-config><session-timeout>200</session-timeout></session-config>2、调用session.invalidate()触发**/public void sessionDestroyed(HttpSessionEvent hse) {HttpSession session = hse.getSession();UserLoginLog userLoginLog = (UserLoginLog) session.getAttribute("userLoginLog");if (userLoginLog != null) {deleteUser(userLoginLog);//在线用户集合中移除该用户ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(session.getServletContext());userLoginLog.setLoginOutTime(new Timestamp(new Date().getTime()));UserLoginLogManager ullmgr = (UserLoginLogManager) ctx.getBean("userLoginLogManager");ullmgr.updateUserLoginLog(userLoginLog);//实时的更新数据库用户登录状态}}}三、通过实现
通过实现HttpSessionListener的sessionCreated()方法可监听用户登录,将用户添加入在线用户集合
四、可用以下界面对在线用户进行展现
0 0
- Listener监听在线用户数量
- 如何在线操作监听日志listener.log
- 如何在线操作监听日志listener.log
- Listener(监听)
- FMS中在线用户数量的统计
- Java Web 强制用户下线,在线用户数量
- 监听器配置,java监听器,登陆监听,Listener,struts监听器配置,用户在线统计
- 监听器配置,java监听器,登陆监听,Listener,struts监听器配置,用户在线统计
- 监听器配置,java监听器,登陆监听,Listener,struts监听器配置,用户在线统计
- 监听器配置,java监听器,登陆监听,Listener,struts监听器配置,用户在线统计
- 监听器配置,java监听器,登陆监听,Listener,struts监听器配置,用户在线统计
- 用Listener监听参数
- 不用listener监听view
- OCM_Session7_12_安装listener监听
- 添加监听(Listener)
- Listener监听类
- 一个可以实现在线用户数量查找的程序
- ORACLE listener监听设置密码
- Android 驱动开发系列二
- malloc和calloc区别
- Java对象数组
- C++ int、string等常见类型转换
- 每天一种算法-插入排序
- Listener监听在线用户数量
- 机器学习笔记(PRML)
- Oracle创建各式的存储过程(簡單案例)
- 【嵌入式开发学习笔记】Exynos4412 uboot移植笔记
- 自定义控件之创建可以复用的组合控件(三)
- android:name属性加不加“.”
- Egret解疑释惑之程序入口
- 57.EasyRecyclerViewSidebar
- 群晖服务器如何搭建网站