博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于tomcat获取在线用户数
阅读量:4112 次
发布时间:2019-05-25

本文共 1268 字,大约阅读时间需要 4 分钟。

需求:

统计某应用的在线用户数

实现方案:

1.基于session监听(复杂麻烦)

2.基于org.apache.catalina.Manager(依赖)

采用第二种的实现如下:

private int activeUserNumber(HttpServletRequest request) {	int activeSessions = 0;	try {		if (request instanceof RequestFacade) {			Field requestField = request.getClass().getDeclaredField(					"request");			requestField.setAccessible(true);			Request req = (Request) requestField.get(request);			org.apache.catalina.Context context = req.getContext();			Manager manager = context.getManager();			activeSessions = manager.getActiveSessions();		}	} catch (Exception e) {		e.printStackTrace();	}	log.info("users:{}", activeSessions);	return activeSessions;}private List
activeUsers(HttpServletRequest request) { List
list = new ArrayList
(); try { if (request instanceof RequestFacade) { Field requestField = request.getClass().getDeclaredField( "request"); requestField.setAccessible(true); Request req = (Request) requestField.get(request); org.apache.catalina.Context context = req.getContext(); Manager manager = context.getManager(); Session[] sessions = manager.findSessions(); for (Session session : sessions) { //your } } } catch (Exception e) { e.printStackTrace(); } log.info("users:{}", list); return list;}

 

转载地址:http://elqsi.baihongyu.com/

你可能感兴趣的文章
【Python】学习笔记——-6.2、使用第三方模块
查看>>
【Python】学习笔记——-7.0、面向对象编程
查看>>
【Python】学习笔记——-7.1、类和实例
查看>>
【Python】学习笔记——-7.2、访问限制
查看>>
【Python】学习笔记——-7.3、继承和多态
查看>>
【Python】学习笔记——-7.4、获取对象信息
查看>>
【Python】学习笔记——-7.5、实例属性和类属性
查看>>
Linux设备模型(总线、设备、驱动程序和类)之四:class_register
查看>>
git中文安装教程
查看>>
虚拟机 CentOS7/RedHat7/OracleLinux7 配置静态IP地址 Ping 物理机和互联网
查看>>
弱类型、强类型、动态类型、静态类型语言的区别是什么?
查看>>
Struts2技术内幕图书 转载
查看>>
Java异常分类
查看>>
项目中的jackson与json-lib使用比较
查看>>
Jackson Tree Model Example
查看>>
j2ee-验证码
查看>>
日志框架logj的使用
查看>>
js-高德地图规划路线
查看>>
常用js收集
查看>>
mydata97的日期控件
查看>>