`

java统计在线状态

 
阅读更多
import java.util.LinkedList;
import java.util.List;

import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;


/**
 * java统计用户在线状态
 * @author sunlightcs
 * 2011-6-26
 * http://hi.juziku.com/sunlightcs/
*/
public class OnLineUserListener implements HttpSessionAttributeListener {
	
	/**
	 * 存放在线用户列表
	 */
	public static List<Integer> onLineUserList = new LinkedList<Integer>();

	
	/**
	 * 根据用户ID,查询用户是否在线
	 * @param userId  用户ID
	 * @return  true:表示用户在线   false:表示用户离线
	 */
	public static boolean findUserOnLine(Integer userId){
		return onLineUserList.contains(userId);
	}
	

	/**
	 * 用户登录时候,把用户的信息存到userSession里
     * UserSession类的结构很简单,只有userId,userName两个属性
	 */
	@Override
	public void attributeAdded(HttpSessionBindingEvent se) {
		if ("userSession".equals(se.getName())){
			/**
			 * 用户上线的话,把用户的ID,添加到onLineUserList里
			 */
			Integer userId = ((UserSession)se.getValue()).getUserId();
			onLineUserList.add(userId);
			System.out.println("用户ID:"+userId + " 上线了。。。");
		}
	}

	@Override
	public void attributeRemoved(HttpSessionBindingEvent se) {
		if ("userSession".equals(se.getName())){
			/**
			 * 用户下线的话,把用户的ID,从onLineUserList中移除
			 */
			Integer userId = ((UserSession)se.getValue()).getUserId();
			onLineUserList.remove(userId);
			System.out.println("用户ID:"+userId + " 下线了。。。");
		}
	}

	@Override
	public void attributeReplaced(HttpSessionBindingEvent se) {
		// TODO Auto-generated method stub
		
	}
	
	
	
}

 监听器的代码写好后,就要把加这类加到web.xml文件里,这样才可以达到监听的作用。
web.xml里,加入的代码如下:

<!-- 监听用户状态   在线或离线 -->
<listener>
        <listener-class>com.xxx.util.OnLineUserListener</listener-class>                        
   </listener>
   
   
   <!--设置会话过期时间为10分钟   如果不设置,默认是30分钟-->
<session-config>
     <session-timeout>10</session-timeout>
</session-config>

 

来源:http://www.juziku.com/wiki/2399.htm

分享到:
评论

相关推荐

    jsp用户在线,离线状态,在线统计与访问统计

    功能描述: 用户是否在线或离线状态 在线用户统计 系统访问人数统计 内有说明文档。

    JAVA上百实例源码以及开源项目源代码

    Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加...

    java大型在线考试培训系统

    下载地址在附件 试题模块(章节结构) 无限自定义层次结构 模块内管理试题 模块试题信息统计 ...在线支付、在线客服中心 自定义管理权限配置 内置邮件发送系统 内置文件管理系统 第三方用户/管理员集成API

    java物联网源码 风电监测物联网源码

    java物联网源码 风电监测物联网源码 架构:基于SpringBoot+核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。 电厂信息 电厂信息包括电厂编号、风机总数、总装机量等 风机配置信息 风机编号、风机品牌、...

    JAVA上百实例源码以及开源项目

    Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加...

    Java项目工时统计成本核算管理系统源码

    轻量级项目工时统计系统,是目前企业进行项工时管理统计的推荐选择。 通过项目工时管理系统,可通过工时上报的...技术:Java 1.8 + MySQL 8 +Vue 项目基于前后端分离架构,服务端主要技术:SpringBoot 前端主要是Vue。

    计算机毕业设计Java在线毕设选题系统

    Java在线毕设选题系统是一个基于Java语言开发的软件系统,旨在帮助计算机专业的学生选择适合的毕业设计题目。该系统提供了一个在线平台,使学生可以浏览和选择感兴趣的毕业设计题目,并与指导老师进行交流和确认。 ...

    java在线购物系统—品红购物网站

    本系统系本人培训作品,希望与大家相互学习共同进步: 整个系统分: 前台: 用户注册登录、站点新闻模块、在线聊天模块、浏览商品及购买模块、... 修改订单状态 删除订单 首页管理 公告管理 销售统计 退出系统

    基于JAVA的网络在线聊天工具MINIQQ

    目录 1. Java语 言 简介 ...2.3.5 如何进行在线用户的统计? 2.3.6 如何利用多线程 2.4 QQ设计及使用中的一些注意事项 3. 由QQ的实现分析各种技术在网络相关程序实现上的优缺点 4. 小结 参考文献

    酒店管理系统JAVA源代码

    q 销售统计:该模块用来分段统计营业额,可以按日、月和年进行统计,其中日统计是按消费单和销售的商品统计销售额,月统计是按日期和每日的销售额统计销售额,年统计是按日期和月份统计销售额。 q 系统安全:该模块...

    java毕业设计-基于java开发的网上报名系统源码.zip

    管理员用户具有在线交流的管理,考试报名审核管理、发布准考证管理、考试报名统计。 学生用户只要实现了前台信息的查看,打开首页,查看网站介绍、信息公告、考试信息等,学生用户通过账户账号登录,登录后查看报名...

    Java微信小程序商城系统源码-.zip

    Java微信小程序商城系统源码,功能小程序用户管理商品分类商品管理订单管理商城购物车用户收货地址公众号用户标签管理公众号用户管理公众号用户消息管理公众号素材管理公众号自定义菜单管理公众号消息自动回复管理...

    java餐饮管理系统源码

    java餐饮管理系统源码 6大功能模块: 登录管理:该模块主要包括管理员、餐厅员工的登录以给于不同的操作权限 前台服务:该模块主要包括开台点菜、查看菜单、查询餐桌状态、结账等功能,其中查看菜单功能可查看菜...

    Java酒店管理系统

    房间状态查询 .商品库存查询 .收支查询统计 .房间消费查询 .交接班查询(自动计算交接班金额且自动计算上交金额,原则本班上交金额=本班开房房费+本班销售商品金额+本班赔偿金额+本班已收欠款金额) D.挂帐管理 .挂帐...

    基于Java SSM 古玩在线商城的设计与实现

    对未发货的订单进行发货,可以根据订单的编号、订单的状态、下单人姓名进行查询统计。古玩在线商城的的设计与实现采用了SSM框架进行设计开发,并通过Java和MySQL的结合来实现代码的逻辑处理和数据存储。古玩在线商城...

    java 酒店管理系统

     销售统计:该模块用来分段统计营业额,可以按日、月和年进行统计,其中日统计是按消费单和销售的商品统计销售额,月统计是按日期和每日的销售额统计销售额,年统计是按日期和月份统计销售额。  系统安全:该...

Global site tag (gtag.js) - Google Analytics