监听器

在Java开发中,对于事件的处理非常重要,比如响应键盘的输入、鼠标的点击、窗口的移动等等都要涉及到Java事件的应用。
实现个监听器的接口:

编写一个监听器

​ 实现监听器的接口

package com.kk.listener;import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;//
public class OnlineCountListener implements HttpSessionListener {//创建session监听  看你的一举一动// 一旦创建session成功  就会触发一次事件!@Overridepublic void sessionCreated(HttpSessionEvent se) {ServletContext ctx = se.getSession().getServletContext();System.out.println(se.getSession().getId());Integer onlineCount = (Integer) ctx.getAttribute("OnlineCount");if (onlineCount==null){onlineCount = new Integer(1);}else{int count = onlineCount.intValue();onlineCount = new Integer(count+1);}ctx.setAttribute("OnlineCount",onlineCount);}//销毁session监听// 一旦销毁session成功  就会触发一次事件!@Overridepublic void sessionDestroyed(HttpSessionEvent se) {ServletContext ctx = se.getSession().getServletContext();Integer onlineCount = (Integer) ctx.getAttribute("OnlineCount");if (onlineCount==null){onlineCount = new Integer(0);}else{int count = onlineCount.intValue();onlineCount = new Integer(count-1);}ctx.setAttribute("OnlineCount",onlineCount);}/*Session 销毁1、手动销毁 getSession.invalidate()2、自动销毁*/
}

2、在web.xml中注册监听器

<!-- 注册监听器--><listener><listener-class>com.kk.listener.OnlineCountListener</listener-class></listener>

3、jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<h1>当前有<span style="color:blue"><%=this.getServletConfig().getServletContext().getAttribute("OnlineCount")%></span>人在线</h1>
</body>
</html>

在JavaWeb中,什么是监听器?(建议收藏)相关推荐

  1. 开发工作中常用网站宝典(建议收藏!!!)

    以下是我开发中非常有用的网站(建议收藏!!!) 网站 简介 https://www.csdn.net 很多开发中遇到的问题在这里几乎都可以找到答案,解析也很详细,不过有些资源收费,需开通会员,(可以到 ...

  2. 万字综述,GNN在NLP中的应用,建议收藏慢慢看

    今天为大家解读的是由京东硅谷研发中心首席科学家吴凌飞博士等研究者最新发表的GNN for NLP综述,几乎覆盖了围绕NLP任务的所有GNN相关技术,是迄今为止GNN for NLP领域最全面最新的综述 ...

  3. “约见”面试官系列之常见面试题之第一百零六篇之css只在当前组件中起作用(建议收藏)

    方法很简单,在组件中的style前面加上scoped就可以了,示例:

  4. 可能是我见过最好的在 Kubernetes 中使用 Traefik 2.1 的中文文档 (强烈建议收藏)

    Traefik 是一个开源的可以使服务发布变得轻松有趣的边缘路由器.它负责接收你系统的请求,然后使用合适的组件来对这些请求进行处理. 除了众多的功能之外,Traefik 的与众不同之处还在于它会自动发 ...

  5. Python中的递归【建议收藏】

    前言:本博文主要讲解Python中的递归,之前在C#中也讲过递归的一些知识--深入理解C#方法重载和递归,有兴趣的朋友可以阅读一下! 文章目录 一.递归的应用场景 二.生活中的递归 1. 故事案例 2 ...

  6. 【Java】3分钟学会Java中基本数据类型(建议收藏)

  7. java web.xml 监听器_十:JavaWeb中的监听器(一)

    2.1.基本概念 JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext, HttpSession和 ServletRequest等域 ...

  8. AI:人工智能概念之机器学习中常用算法的思维导图集合(非常经典、建议收藏)之详细攻略

    AI:人工智能概念之机器学习中常用算法的思维导图集合(非常经典.建议收藏)之详细攻略 目录 机器学习算法的思维导图集合 1.ML算法思维图 2.ML算法思维导图 相关文章:ML/DL:关于算法模型的选 ...

  9. Dataset:数据集集合(综合性)——机器学习、深度学习算法中常用数据集大集合(建议收藏,持续更新)

    Dataset:数据集集合(综合性)--机器学习.深度学习算法中常用数据集大集合(建议收藏,持续更新) 目录 常规数据集 各大方向分类数据集汇总 具体数据集分类 相关文章 DL:关于深度学习常用数据集 ...

  10. springboot中获取bean_最新Spring Boot干货总结(超详细,建议收藏)

    前言:本文非常长,建议先mark后看,也许是最后一次写这么长的文章说明:前面有4个小节关于Spring的基础知识 分别是:IOC容器.JavaConfig.事件监听.SpringFactoriesLo ...

最新文章

  1. Ubuntu 系统通过终端打开AndroidStudio工具
  2. Linux下通过v4l2获取视频设备名、支持的编解码及视频size列表实现
  3. 前瞻:Spring 6.0将停止支持Freemarker和JSP
  4. ASP.NET MVC 5 - 将数据从控制器传递给视图
  5. KA,连接池居然这么简单?
  6. 5002.boost库之thread
  7. debian6安装后中文乱码
  8. Tree(树链剖分+线段树延迟标记)
  9. http断点续传的原理
  10. win11beta渠道升级的如何改为正式版 Windows11beta版升级正式版的步骤方法
  11. ITU-R BT.656 , 帧 , 场 === 模拟视频信号采集的处理,以及奇偶场
  12. 奥维互动地图自建谷歌地图服务器,奥维互动地图添加谷歌地图完美
  13. cad2004教程_CAD卸载教程
  14. 小区广播背景音乐系统IP网络广播解决方案
  15. 无线路由器和无线网卡的普及知识贴及选择(2019.05更新802.11AX网卡,3T3R wave2路由器推荐)
  16. php保存pdf旋转90度,怎么将PDF文件向左旋转90度?这款软件还有旋转功能!
  17. css如何对上边框加阴影,CSS怎么添加阴影边框?
  18. FTP服务器的搭建,可两个电脑通过局域网进行传输
  19. PIXI+GSAP 防刹车动效
  20. 识读第三角视图(机械识图)

热门文章

  1. poj2186【利用强连通分量】
  2. php实现设计模式之 命令模式
  3. UIRefreshControl
  4. Linux(Ubuntu)如何处理新添加的硬盘
  5. Linux中echo 返回值的意思
  6. 【Hive】压缩格式
  7. iOS开发中常见的一些异常
  8. MyBatis 插入失败后爆出 500 ,如何捕获异常?
  9. 在Java中编码为Base64
  10. 如何在python中识别未知的日期时区时区