servlet监听器实现在线人数统计 一.准备知识

1.servlet:servlet是一种运行服务器端的Java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。

2.filter:filter是一个可以复用的代码片段,可以用来转换HTTP请求、响应和头信息。Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改从某一的响应。

3.listener:监听器,从字面上可以看出listener主要用来监听只用。通过listener可以监听web服务器中某一个执行动作,并根据其要求作出相应的响应。通俗的语言说就是在application,session,request三个对象创建消亡或者往其中添加修改删除属性时自动执行代码的功能组件。

4.servlet:servlet的生命周期始于它被装入web服务器的内存时,并在web服务器终止或重新装入servlet时结束。servlet一旦被装入web服务器,一般不会从web服务器内存中删除,直至web服务器关闭或重新结束。

(1)、装入:启动服务器时加载Servlet的实例;

(2)、初始化:web服务器启动时或web服务器接收到请求时,或者两者之间的某个时刻启动。初始化工作有init()方法负责执行完成;

(3)、调用:从第一次到以后的多次访问,都是只调用doGet()或doPost()方法;

(4)、销毁:停止服务器时调用destroy()方法,销毁实例。

5.filter:(一定要实现javax.servlet包的Filter接口的三个方法init()、doFilter()、destroy(),空实现也行)。

(1)、启动服务器时加载过滤器的实例,并调用init()方法来初始化实例;

(2)、每一次请求时都只调用方法doFilter()进行处理;

(3)、停止服务器时调用destroy()方法,销毁实例。

6.listener:类似于servlet和filter

web.xml 的加载顺序是:context- param -> listener -> filter –> servlet

二.预备知识

通过ServletContext 的实例可以存取应用程序的全局对象以及初始化阶段的变量。 在JSP文件中,application 是 ServletContext 的实例,由JSP容器默认创建。Servlet 中调用 getServletContext()方法得到 ServletContext 的实例。

注意:全局对象即Application范围对象,初始化阶段的变量指在web.xml中,经由元素所设定的变量,它的范围也是Application范围,例如:

< param-name>Name

< param-value>browser

< /context-param>

当容器启动时,会建立一个Application范围的对象,若要在JSP网页中取得此变量时:

String name = (String)application.getInitParameter(“Name”);

${initPara.name}

//若是在Servlet中,取得Name的值方法:

String name = (String)ServletContext.getInitParameter(“Name”); 目前Servlet2.4和JSP2.0总共有8个监听器接口和6个Event类,如下:

突然不支持图片发布, 笔者也很郁闷,需要的读者自己查吧。。。

三.统计在线人数

1.第一种方式

package webbook.chapter14;

import javax.servlet.http.HttpSessionEvent;

import javax.servlet.http.HttpSessionListener;

public class CounterListener implements HttpSessionListener {

private static long onlineNumber = 0;

public static long getOnlineNumber() {

return onlineNumber;

}

public void sessionCreated(HttpSessionEvent se) {

onlineNumber++;

}

public void sessionDestroyed(HttpSessionEvent se) {

onlineNumber–;

}

}当前应用中一共有人在线
统计的数字并不完全准确,因为可能用户下线了,session还没失效,怎么办呢?俺也不知道。。

2.第二种方式

显示谁在线,使用ArrayList,创建session时加入,销毁时删除(remove)。

linux服务器在线人数,servlet监听器实现在线人数统计源码实例相关推荐

  1. Linux及Windows下编译exosip和osip2源码

    eXosip库及编译流程简介 1.eXosip库的简介 1.1.osip简介 osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一,它具有短小简洁的特点,专注于sip底层 ...

  2. Linux驱动修炼之道-SPI驱动框架源码分析(上)

    Linux驱动修炼之道-SPI驱动框架源码分析(上)   SPI协议是一种同步的串行数据连接标准,由摩托罗拉公司命名,可工作于全双工模式.相关通讯设备可工作于m/s模式.主设备发起数据帧,允许多个从设 ...

  3. 友盟统计java代码_SFAnalytics 分析友盟统计源码,反编译 SDK,还有部分没有 出来 android 259万源代码下载- www.pudn.com...

    文件名称: SFAnalytics下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 8023 KB 上传时间: 2016-06-05 下载次数: 0 提 供 者: ...

  4. 菜鸟学Linux 第030篇笔记 yum使用,源码编译安装

    菜鸟学Linux 第030篇笔记 yum使用,源码编译安装 yum yellow updatet modified c/s: client, server yum repository 文件服务定义 ...

  5. 基于Android+servlet的宠物商店【源码+文档+ppt】

    目录 1.文档目录 1.课题研究目的 2.开发技术 2.1 Android技术 2.2 servlet 3.需求分析 3.1 系统模型 3.2 系统用例图 3.3 顶层数据流图 3.4 零层数据流图 ...

  6. Linux环境下ANTs软件安装(基于源码)

    Linux环境下ANTs软件安装(基于源码) 1.下载Cmake 在命令行里运行: 2.下载ITK 在命令行里运行: 3.ANTs安装 (1)在命令行里运行: (2)编译完之后如果在 antsbin ...

  7. 某社区在线人数爬虫,以及群发的源码分享

    接口自动化测试https://www.o200.cn #群发消息 @csrf_exempt def sendmsg(request):     uname=request.session.get(&q ...

  8. Linux下怎么使用任务管理器和真人接口源码出售进程管理

    大家都知道在Windows下怎么使用任务管理器来管理进程,真人接口源码出售[企鹅21717-93408]那么在linux下呢? 今天简单介绍一下怎么在linux使用任务管理器管理进程,让我们的linu ...

  9. springboot-嵌入式Servlet容器(Tomcat)源码分析以及容器切换

    目录 一.springboot的嵌入式Servlet容器(tomcat) 1.原理 2.源码 (1)ServletWebServerApplicationContext的createWebServer ...

最新文章

  1. python量化外汇交易_用Python实现一个Dual Thrust数字货币量化交易策略
  2. MySQL Proxy实现数据库读写分离
  3. B-树的插入、查找、删除
  4. 第四范式入选Gartner 2020十大战略技术趋势报告 成全球AutoML代表厂商
  5. ubuntu安装java的rpm_ubuntu安装jdk-6u45-linux-x64-rpm.bin
  6. MongDB之shard_主从,副本集,分片的理解
  7. 从 TDSQL 演进史,探索国产数据库发展规律
  8. 迭代器,生成器,三元运算,列表推导式
  9. 全网首发:There is an incompatible JNA native library installed on this system/6.1.2/4.0.1
  10. 大数计算器c语言实训报告,C语言计算器设计实验报告.doc
  11. 读书笔记(随笔5)虚拟终端
  12. 机器翻译 | 反向翻译 (back-translation) 笔记
  13. word文字上下间距怎么调_word文档里的文字上下左右之间的间距如何调整?
  14. python panel dataframe_Pandas面板(Panel)
  15. uniapp上班考勤打卡情况日历展示
  16. 吴伯凡:VUCA时代的自我迭代
  17. APP合规讲堂(七)-App有关收集使用规则的内容晦涩难懂、冗长繁琐,用户难以理解
  18. 红黑树添加和删除节点原理
  19. 阿里云配置DNS服务器
  20. python的英文单词表_随机单词生成器 - Python

热门文章

  1. [小故事大道理] -- GoodMorning,Sir!
  2. 狂潮微课表示-怎么做免费的百度爱采购推广
  3. Java入门之初识设计模式---单列模式
  4. 下一代防火墙市场高速增长,年复合增长率为13.6%
  5. [摘录]第一部分 掌舵领航(3)
  6. 恢复linux里被误删除的文件
  7. 安卓通过绑定开启服务 来调用服务里的方法
  8. 老男孩为网友工作疑难问题解答一例
  9. 二、使用rails3.0自带的数据检查功能检查输入数据
  10. 谷歌施密特:美人才签证政策让硅谷转移到中国