1.工程说明

a.要求:使用监听器统计在线用户及人数

b.思考:想要统计当前网站上在线的人数,应该通过哪一种方法去实现呢?
      request是一次请求
      application是随整个服务器生而生,亡而亡

session是一次会话

由上可见,session跟适合用来统计当前的在线用户

我们都知道当用户打开一个页面的时候,服务器就会创建一个session,当用户彻底关闭页面的时候msession就会被销毁.

因此,要统计当前的的在线用户即是写一个session创建销毁的监听器:session被创建就是一个用户来了,session被销毁即是一个用户离开了。所以,用session的创建销毁监听器来统计再适合不过了。

ok,思路屡清楚了,接下来就撸起袖子干起来。

附上工程的下载地址

2.创建并注册监听器

package listener;import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
@WebListener
public class MySessionListener implements HttpSessionListener {//统计在线人数的变量private int onlineNumber;@Overridepublic void sessionCreated(HttpSessionEvent arg0) {onlineNumber++;arg0.getSession().getServletContext().setAttribute("OnlinePeople", onlineNumber);}@Overridepublic void sessionDestroyed(HttpSessionEvent arg0) {onlineNumber--;arg0.getSession().getServletContext().setAttribute("OnlinePeople", onlineNumber);}}

3.index.jsp显示当前的用户人数

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"%>
<%
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%>"><title>My JSP 'index.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">--></head><body><center><h2>我是一个长的不咋样的主页面</h2><hr><h4>当前在线的用户人数: ${OnlinePeople }</h4></center></body>
</html>

4.运行结果

使用另一个浏览器打开,可以看见:

但是为什么我们关闭浏览器的时候,这个在线用户人数不会减少呢?是因为session的生命周期决定的,我们没有去定义session的什么周期的时间,所以session销毁会默认到session过期才销毁的。

好啦,以上是通过监听session创建和销毁来实现一个在线人数的统计效果。

【监听器篇】4.统计当前在线的用户人数相关推荐

  1. redis服务器信息统计,利用Redis统计网站在线活跃用户的方法

    前言 在工作中我们经常遇到这样的需求,要对某个在线网站的活跃用户数量进行统计.这里我们以redis为例,说明一下其实现的过程. 实现方法 在Redis中存在bitmap这种数据类型,这种数据类型是建立 ...

  2. java扫描所有用户信息_监听器实现案例----自定义session扫描器和统计在线用户人数及用户信息...

    一.案例一:自定义Session扫描器 1.案例说明 当一个Web应用创建的Session很多时,为了避免Session占用太多的内存,我们可以选择手动将这些内存中的session销毁,那么此时也可以 ...

  3. java怎么快速创建监听类_java_利用java监听器实现在线人数统计,1.在工程中创建监听类SessionLi - phpStudy...

    利用java监听器实现在线人数统计 1.在工程中创建监听类SessionListener 并且实现HttpSessionListener接口,代码如下 import javax.servlet.htt ...

  4. linux服务器在线人数,servlet监听器实现在线人数统计源码实例

    servlet监听器实现在线人数统计 一.准备知识 1.servlet:servlet是一种运行服务器端的Java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求 ...

  5. 在线音乐用户寄望用爱发电,资本不愿无米之炊

    文/螳螂财经(ID:TanglangFin) 作者/陈小江 想要发现音乐新世界的虾米,最终没能找到新世界. 1月5日,虾米音乐官宣将于2 月5 日停止服务.3月5日0点后,除网页端音螺平台音乐人(即原 ...

  6. 在线教育、直播教育、课程直播、订单系统、老师介绍、收入提现、在线学习、业绩统计、课程统计、选老师、选课程、作业管理、课程管理、报名统计、在线教育管理系统、axure原型、rp源文件

    在线教育.直播教育.课程直播.订单系统.老师介绍.收入提现.在线学习.业绩统计.课程统计.选老师.选课程.作业管理.课程管理.报名统计.在线教育管理系统.axure原型.rp源文件 Axure原型演示 ...

  7. java统计在线人数_java统计当前在线数 (转)

    java统计当前在线数 (转)[@more@] package com.hnedu.stat; /** * 计算在线人数,说明: * * 在访问页面放入: * com.hnedu.stat.Onlin ...

  8. iOS开发工具篇-AppStore统计工具

    http://blog.devtang.com/blog/2013/06/16/ios-dev-tool-app-store-tool/ iOS开发工具篇-AppStore统计工具 JUN 16TH, ...

  9. 爬虫篇——selenium(webdriver)进行用户登录并爬取数据)

    爬虫篇--selenium(webdriver)进行用户登录并爬取数据 摘要 (一)创建browser对象 (二)用户登录 (三)数据爬取 摘要 本文主要介绍了如何通过selenium使用Chorme ...

最新文章

  1. mysql有关权限的表都有哪几个
  2. 前端学习(2777):组件之间的通讯方式
  3. [你必须知道的.NET] 开篇有益
  4. (5)ISE14.7 开发流程(FPGA不积跬步101)
  5. python docx 替换文字_查找并替换.docx文件中的文本 - Python
  6. Linux下Java安装与配置
  7. c语言读取tdx日线文件,***EXCEL读取通达信股票日线数据***改为读取通达信股票5分钟数据...
  8. 配有傲腾内存的电脑如何安装系统
  9. python多维列表索引越界怎么处理_python列表索引越界
  10. 基于FPGA三大串行通信接口简单概述
  11. 云计算开发一般负责什么工作呢?云计算是做什么的?
  12. 转炉炼钢计算机仿真实训,转炉炼钢生产仿真实训(高职高专十二五规划教材)
  13. 小程序实现书籍翻页效果
  14. physx: pid balance controll
  15. MPU6050读取数据FIFO溢出问题
  16. 本章设计了三种不同的神经网络,神经网络简答题
  17. 无线网络技术测试试题(五)
  18. MY DAILY LIFE
  19. Python 基础之linux基础相关
  20. 电脑发现感染麻辣香锅恶意软件咋处理?

热门文章

  1. linux 设置开机自启动 文件配置开机自启动命令
  2. c语言程序设计移动字母,C语言程序设计实例大全(220个例子)
  3. Android 在应用图标上设置未读消息数量
  4. 装逼技巧:程序员如何用代码证明自己牛逼!
  5. 常见的exceptions总结
  6. lodop设置html字体大小无效,LODOP设置纸张无效问题
  7. 信息安全系统设计基础第十四周学习总结
  8. 云图科技,长沙VR多方面给人们带来了新的体验!
  9. matlab 脱离mcr,MATLAB生成exe脱离matlab运行可执行程序
  10. matlab射影几何,一种利用单幅图像的现场摄像机自标定方法