Java之Listener

Listener监听器

监听器有很多种,大部分还是在GUI用的比较多,这里简单记录一点关于HttpSessionListener的

统计session count Listener。主要通过ServletContext上下文来存储session count,在listener中create和destroyed方法实现session count的逻辑,主要是将ServletContext作为第三方来进行session count值的存储与改动。通过jsp中application对象get上下文属性来获取count值实现实时显示session的数量。

  1. public class OnlineCountListener implements HttpSessionListener {
  2. //创建session监听
  3. //一旦创建session就会触发该事件
  4. public void sessionCreated(HttpSessionEvent httpSessionEvent) {
  5. System.out.println(httpSessionEvent.getSession().getId());
  6. //每次有session创建,代表用户数量+1
  7. HttpSession session = httpSessionEvent.getSession();
  8. //获取上下文,将人数OnlineCount存入上下文中方便读写
  9. ServletContext sct = session.getServletContext();
  10. Integer OnlineCount = (Integer) sct.getAttribute("OnlineCount");
  11. if (OnlineCount==null){
  12. OnlineCount = new Integer(1);
  13. }else {
  14. int count = OnlineCount.intValue();
  15. OnlineCount = new Integer(count+1);
  16. }
  17. //数值通过属性存入上下文中
  18. sct.setAttribute("OnlineCount", OnlineCount);
  19. }
  20. //销毁session监听
  21. //一旦销毁session就会触发该事件
  22. public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
  23. //每次有session创建,代表用户数量+1
  24. HttpSession session = httpSessionEvent.getSession();
  25. //获取上下文,将人数OnlineCount存入上下文中方便读写
  26. ServletContext sct = session.getServletContext();
  27. Integer OnlineCount = (Integer) sct.getAttribute("OnlineCount");
  28. if (OnlineCount==null){
  29. OnlineCount = new Integer(0);
  30. }else {
  31. int count = OnlineCount.intValue();
  32. OnlineCount = new Integer(count-1);
  33. }
  34. //数值通过属性存入上下文中
  35. sct.setAttribute("OnlineCount", OnlineCount);
  36. }
  37. }

web.xml配置Listener

  1. <listener>
  2. <listener-class>com.zh1z3ven.listener.OnlineCountListener</listener-class>
  3. </listener>

Index.jsp

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>OnlineCount</title>
  5. </head>
  6. <body>
  7. <h2 align="center">当前在线人数为:<span><%= application.getAttribute("OnlineCount")%></span></h2>
  8. </body>
  9. </html>

Java之Listener的更多相关文章

  1. JAVA监听器Listener

    JAVA监听器Listener 一. 简介 监听器用于对web中内置对象的状态或者属性变化进行监听并做出相应响应的一种Servlet;在内置对象的生命周期中,产生.销毁等状态发生变化时,监听器就会进行 ...

  2. Java监听器listener的介绍

    Java监听器listener的介绍 listener 能做什么 当web中某些动作发生之后,服务器就调用listener中对应的方法. 内部机制 接口回调 Web监听器 步骤 创建需要的监听器类,实 ...

  3. 【Servlet】Java Serlvet Listener 监听器

    Listener监听器 Servlet规范中定义的一种特殊的组件,用来监听Servlet容器产生的事件并进行相应的处理 容器产生的事件分类 - 生命周期相关的事件 - 设置和删除Attribute数据 ...

  4. java web Listener的简单使用案例

    1.web.xml的配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi= ...

  5. Java监听器Listener使用说明

    转载:http://blog.csdn.net/meng2602956882/article/details/13511587 1.什么是Java监听器 监听器也叫Listener,是Servlet的 ...

  6. Java监听器Listener使用详解

    监听器用于监听web应用中某些对象.信息的创建.销毁.增加,修改,删除等动作的发生,然后作出相应的响应处理.当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法.常用于统计在线人数和在线用 ...

  7. Java监听器Listener的使用详解

    监听器用于监听Web应用中某些对象的创建.销毁.增加,修改,删除等动作的发生,然后作出相应的响应处理.当监听范围的对象的状态发生变化的时候,服务器自动调用监听器对象中的方法.常用于统计网站在线人数.系 ...

  8. java高级 - java利用listener实现回调,即观察者模式

    https://blog.csdn.net/lin_sir6/article/details/70052954

  9. java监听器(Listener)学习笔记

    现在来说说Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次, ...

随机推荐

  1. MySql:mysql命令行导入导出sql文件

    命令行导入 方法一:未连接数据库时方法 #导入命令示例 mysql -h ip -u userName -p dbName < sqlFilePath (结尾没有分号) -h : 数据库所在的主 ...

  2. Quzrtz.net 示例

    //框架.Net Core 2.0//先用Nuget 安装最新quartz.net using System; using Quartz; using Quartz.Impl; using Syste ...

  3. Python小白的数学建模课-B6. 新冠疫情 SEIR 改进模型

    传染病的数学模型是数学建模中的典型问题,常见的传染病模型有 SI.SIR.SIRS.SEIR 模型. SEIR 模型考虑存在易感者.暴露者.患病者和康复者四类人群,适用于具有潜伏期.治愈后获得终身免疫 ...

  4. ARTS第七周

    补上.瞎忙,看来还是效率的问题. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3.Tip:学习至少一个技术技巧4.Share:分享 ...

  5. ARTS第二周

    第二周. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3.Tip:学习至少一个技术技巧4.Share:分享一篇有观点和思考的技术文 ...

  6. 洛谷P5463 小鱼比可爱(加强版) 题解

    写博客不易,来玩会? 这道题我和dalao们的做法略有不同,我用的是归并排序做法qwq 归并排序求逆序对大家应该很清楚了,我这里就来讲讲如何用归并排序求出这道题的答案 让我们先观察一下规律 举个栗子, ...

  7. C语言:if条件写法

    if 语句的判断条件中不是必须要包含关系运算符,它可以是赋值表达式,甚至也可以是一个变量,常量 例如: //情况① if(b){ //TODO: } //情况② if(b=5){ //情况① //TO ...

  8. C语言变量 类型判断

    变量三要素: 一个变量有三个基本的要素,变量的名称,变量的类型,变量的值.所以int a = 10; 变量名为a,变量的存储类型为int型,变量的值为10. 变量还有一些属性如作用范围和存储类型. 变 ...

  9. [刘阳Java]_第一个Java程序_第7讲

    1. 其实第一个Java程序是很简单,但是当自己编写第一个Java程序时候需要注意如下几个内容: 理解Java程序的运行环境 校验你的Java环境变量是否能够运行你所写的第一个Java程序 理解Jav ...

  10. 【洛谷P2623物品选取】动态规划

    分析 各种背包弄在一起. AC代码 // luogu-judger-enable-o2 #include <bits/stdc++.h> using namespace std; #def ...