Javaweb实现在线人数统计代码实例
作者:yaominghui 发布时间:2023-01-17 10:19:24
标签:java,web,在线,人数,统计
这篇文章主要介绍了Javaweb实现在线人数统计代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
session并不是浏览器关闭时销毁的,而是在session失效的时候销毁下列代码就是监测session创建、销毁
package com.my.count;
import javax.servlet.http.*;
public class SessionCounter implements HttpSessionListener {
private static int activeSessions = 0;
//session创建时执行
public void sessionCreated(HttpSessionEvent se) {
activeSessions++;
}
//session销毁时执行
public void sessionDestroyed(HttpSessionEvent se) {
if (activeSessions > 0)
activeSessions--;
}
//获取活动的session个数(在线人数)
public static int getActiveSessions() {
return activeSessions;
}
}
接下来就是配置web.xml
<listener>
<listener-class>
com.my.count.SessionCounter //这里是包名加类名
</listener-class>
</listener>
接下来就可以在jsp页面中使用
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="com.my.count.SessionCounter"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>" rel="external nofollow" >
<title>My JSP 'ApplicationTest.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" >
-->
</head>
<body>
在线人数为:<%=SessionCounter.getActiveSessions() %>
</body>
</html>
不用jsp页面 写成接口代码如下:
package com.wangyun.web.controllers;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class SessionCounter implements HttpSessionListener {
static int activeSessions = 0;
//session创建时执行
public void sessionCreated(HttpSessionEvent se) {
activeSessions++;
}
//session销毁时执行
public void sessionDestroyed(HttpSessionEvent se) {
if (activeSessions > 0)
activeSessions--;
}
//获取活动的session个数(在线人数)
public static int getActiveSessions() {
return activeSessions;
}
}
/**
* 在线用户人数
* @throws IOException
* @throws ServletException
*/
@RequestMapping(value="user_online", method=RequestMethod.POST, produces="text/json;charset=utf-8")
@ResponseBody
public Object user_online() throws ServletException, IOException {
JSONObject data = new JSONObject();
int number=SessionCounter.activeSessions;
data.put("msg",number);
return data.toString();
}
来源:https://www.cnblogs.com/dreamrobot/p/11904818.html
0
投稿
猜你喜欢
- 一. 封装封装是面向对象的三大特性之一;面向对象程序三大特性:封装、继承、多态 。封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和
- public static string Replace(string source, string match, string repla
- 1 pom.xml文件注:热部署功能spring-boot-1.3开始有的<!--添加依赖--><dependency&g
- 前言:有时候我们在用Spring Aop面向切面编程,需要获取连接点(JoinPoint)方法参数名、参数值。环境:Mac OSXIntel
- 本文实例为大家分享了Java实现24点小游戏的具体代码,供大家参考,具体内容如下程序设计要求:24点游戏是经典的纸牌益智游戏。常见游戏规则:
- 前言上一篇分析了事务注解的解析过程,本质上是将事务封装为切面加入到AOP的执行链中,因此会调用到MethodInceptor的实现类的inv
- 条码的应用已深入生活和工作的方方面面。在处理条码时,常需要和各种文档格式相结合。当需要在文档中插入、编辑或者删除条码时,可借助于一些专业的类
- 本文实例讲述了C#封装的常用文件操作类。分享给大家供大家参考。具体如下:这个C#类封装了我们经常能用到的文件操作方法,包括读写文件、获取文件
- 先看看效果Like This↓一、公共WiFi 公用电脑什么的在我们日常在线上工作、玩耍时,不论开电脑、登录淘宝、玩网游统统都会用到键盘输入
- 一、线程的生命周期1.五种状态:新建状态、就绪状态、运行状态、阻塞状态、消亡状态2.就绪状态的线程表示有权利去获取CPU的时间片,CPU时间
- timer的schedule和scheduleAtFixedRate方法一般情况下是没什么区别的,只在某个情况出现时会有区别--当前任务没有
- 1.SQL注入:程序向后台数据库传递SQL时,用户提交的数据直接拼接到SQL语句中并执行,从而导入SQL注入攻击。字符型注入:黑色部分为拼接
- Bean:在Spring技术中是基于组件的最基本了是最常用的单元其实实例保存在Spring的容器当中Bean通常被定义在配置文件当中,Bea
- 前言;Apache common-pool对象池介绍:对象生命周期、Config详解、代码说明对象生命周期Config详解maxActive
- 由于工作中 使用 MultipartFile 与现有的一些上传文件组件冲突所以使用其他的接收上传文件的方法.首先我把 M
- 工欲善其事,必先利其器很多程序员可能都忘了记录应用程序的行为是一件多么重要的事,当遇到多线程环境下高压力导致的并发bug时,你就能体会到记录
- 本文将带领大家实现第一个用eclipse写的第一个Javaweb项目–简单购物车。文章会在问题分析、具体实现和常见问题这三块为大家详细解说。
- Java——获取字符串编码格式判断一个字符串的编码格式: public static St
- 前言Flutter (Channel stable, 2.10.3, on Microsoft Windows [Version 10.0.
- 本文实例汇总了Java的System.getProperty()方法获取信息的用法。分享给大家供大家参考。具体如下:System.out.p