小滴课堂-学习笔记:Javaweb开发核心知识之Listener监听器

小滴课堂-新版JavaWeb零基础到实战专题课程-21 Servlet-Service-Dao层开发user表使用phone唯一索引。 阅读详情

logo 愿景:"让编程不再难学,让技术与生活更加有趣"


更多架构课程请访问 xdclass.net

目录

第1集 Javaweb开发核心之初识Listener监听器

第2集 监听器实战ServletContextListener全局配置加载

第3集 监听器实战HttpSessionListener统计当前在线人数

第4集 监听器实战ServletRequestListener统计网站请求量

干货文档


第1集 Javaweb开发核心之初识Listener监听器

简介:讲解Servlet里面的监听器Listener

  • 什么是监听器:

    • 监听器是一个实现了特定接口的普通Java类,用于监听其他对象的创建和销毁,监听其他对象的方法执行和属性改变;
    • 声控灯开关

    timg

  • javaweb里面的监听器:

    • 作用:监听域对象的创建和销毁,比如request/session/context

    • 分类:

      • ServletContextLitener
      • HttpSessionListener
      • ServletRequestListener
  • 监听器的实现步骤: (1)创建一个普通的Java类 (2)让该类实现监听器的接口 (3)在该类中实现监听器接口的所有方法 (4)旧版的在web.xml文件中通过标签来配置监听器,新版使用 @WebListener

 

 

 

 

 

 

第2集 监听器实战ServletContextListener全局配置加载

简介:实战自定义ServletContext监听器

  • 使用场景:加载全局配置,初始化项目信息

  • web.xml配置

    
    
    
        <context-param>
            <param-name>url</param-name>
            <param-value>https://xdclass.net</param-value>
        </context-param>
    ​
        <context-param>
            <param-name>topic</param-name>
            <param-value>小滴课堂java高级工程师成长专题视频</param-value>
        </context-param>

     

  • 监听器开发

    
    
    
    @WebListener
    public class ContextListener implements ServletContextListener {
    ​
        @Override
        public void contextInitialized(ServletContextEvent sce) {
        
            System.out.println("ContextListener contextInitialized");
            ServletContext servletContext = sce.getServletContext();
            String url = servletContext.getInitParameter("url");
            String topic = servletContext.getInitParameter("topic");
        
            Config config = new Config();
            config.setTopic(topic);
            config.setUrl(url);
            servletContext.setAttribute("config",config);
        }
    ​
        @Override
        public void contextDestroyed(ServletContextEvent sce) {
        
            System.out.println("ContextListener contextDestroyed");
        }
    }
    
    
    

     

第3集 监听器实战HttpSessionListener统计当前在线人数

简介:java监听器实战之HttpSessionListener统计当前在线人数

  • session使用场景

    • 和session相关操作,比如统计网站在线人数,当前服务器的负载情况等
  • ContextLisener配置

    
    
    
    //获取上下文对象
    ServletContext sc = sce.getServletContext();
    sc.setAttribute("onlineNum",0);
    

     

  • HttpSessionListener开发

    
    
    
    @WebListener
    public class SessionListener implements HttpSessionListener {
    ​
        @Override
        public void sessionCreated(HttpSessionEvent se) {
            System.out.println("SessionListener sessionCreated");
        
            ServletContext servletContext  = se.getSession().getServletContext();
        
            //获取在线人数
            Integer onlineNum = (Integer)servletContext.getAttribute("onlineNum");
        
            //新增1
            servletContext.setAttribute("onlineNum",++onlineNum);
        
        }
    ​
        @Override
        public void sessionDestroyed(HttpSessionEvent se) {
            System.out.println("SessionListener sessionDestroyed");
        
            ServletContext servletContext  = se.getSession().getServletContext();
        
            //获取在线人数
            Integer onlineNum = (Integer)servletContext.getAttribute("onlineNum");
        
            //减少1
            servletContext.setAttribute("onlineNum",--onlineNum);
        
        }
    }

     

  • add.jsp

    
    
    
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>小滴课堂javaweb统计在线人数</title>
    </head>
    <body>
    ​
    <hr>
    ​
    近30分钟在线人数: ${applicationScope.onlineNum}
    </body>
    </html>
    

     

  • delete.jsp

    
    
    
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>小滴课堂 xdclass.net 专题课程</title>
    </head>
    <body>
    ​
    销毁session
    <hr>
    <% request.getSession().invalidate(); %>
    </body>
    </html>
    

     

  • 注意:

    • 关闭启动tomcat自动打开浏览器,因为会触发会触发多个session
    • 使用多个浏览器测试 粗略统计,如果是多机器分布式情况,需要用到分布式缓存

 

第4集 监听器实战ServletRequestListener统计网站请求量

简介:实战ServletRequestListener统计网站请求量

 

  • ContextLisener配置

    
    
    
    //获取上下文对象
    ServletContext sc = sce.getServletContext();
    sc.setAttribute("onlineNum",0);
    sc.setAttribute("totalVisit",0);
    

     

  • RequestListener开发

    
    
    
    @WebListener
    public class SessionListener implements HttpSessionListener {
    ​
        @Override
        public void sessionCreated(HttpSessionEvent se) {
            System.out.println("SessionListener sessionCreated");
        
            ServletContext servletContext  = se.getSession().getServletContext();
        
            //获取在线人数
            Integer onlineNum = (Integer)servletContext.getAttribute("onlineNum");
        
            //新增1
            servletContext.setAttribute("onlineNum",++onlineNum);
        
        }
    ​
        @Override
        public void sessionDestroyed(HttpSessionEvent se) {
            System.out.println("SessionListener sessionDestroyed");
        
            ServletContext servletContext  = se.getSession().getServletContext();
        
            //获取在线人数
            Integer onlineNum = (Integer)servletContext.getAttribute("onlineNum");
        
            //减少1
            servletContext.setAttribute("onlineNum",--onlineNum);
        
        }
    }
    

     

  • add.jsp

    
    
    
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    ​
    <head>
        <title>小滴课堂javaweb统计在线人数</title>
    </head>
    <body>
    ​
    <hr>
    ​
    近30分钟在线人数: ${applicationScope.onlineNum}
    <hr>
    应用服务器启动后总访问次数:${totalVisit}
    </body>
    </html>
    
    
    

     

干货文档

                                                        关注公众号发送:“优快云干货文档”  即可领取

小滴课堂后端面试题(1)~持续更新中 一、说说如何实现分布式锁 常见的实现分布式锁有两种方式 基于redis实现分布式锁:核心思想是获取锁的时候,使用setnx加锁,并使用expire命令为锁添 加一个超时时间,超过该时间则自动释放锁 基于zookeeper的实现方式,核心思想在zk中是为每个线程生成一个有序的临时节点,为确保有 序性,在排序一次全部节点,获取全部节点,每个线程判断自己是否最小,如果是的话,获得 锁,执行操作,操作完删除自身节点。如果不是第一个的节点则监听它的前一个节点,当它的前 一个节点被删除时,则它会获得锁,以 阅读详情

相关推荐

Nginx_SSM_springcloud_小滴课堂笔记.rar

小滴课堂笔记_含(Nginx_SSM_springcloud,有Nginx、Spring SpringMVC Mybatis、SpringCloud)

javaweb学习总结(四十四)——监听器(Listener)学习

一、监听器介绍 1.1、监听器的概念      监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行。 1.2、监听器案例——监听window窗口的事件监听...

weixin_33958366的博客 253

OnlineNumControllService:在线人数控制

OnlineNumControllService 在线人数控制,maven项目模块,实现满人后踢人

Listener监听器

一、监听器的概念 Servlet监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext、HttpSession和ServletRequest等域对象的创建与销毁事件,以及监听这些域对象中属性发生修改的事件。 监听对象: 1、ServletContext:application,整个应用只存在一个 2、HttpSession:session,针对每一个对话 3、...

Charge8的博客 331

CRISPR筛选全流程指南:从文库构建到数据分析实战

功能基因组学研究需要高效解析基因型与表型的关联,高通量筛选技术是其中的关键工具。基于CRISPR系统的筛选方法通过大规模sgRNA文库扰动基因功能,结合慢病毒递送和测序分析,能够系统鉴定影响细胞增殖、耐药、病毒感染的候选基因。与RNAi或化学小分子筛选相比,CRISPR筛选具有覆盖全基因组、脱靶率低、信号清晰等优势,已广泛应用于药物靶点发现、合成致死和免疫治疗机制研究。本文围绕实验设计与操作中的核心要点展开,涵盖文库扩增、病毒滴度控制、MOI把握、筛选模式选择以及基于MAGeCK的sgRNA丰度分析,并针对

weixin_31188927的博客 277

一文解释电路中常用电子元器件应用和选型01

电容和二极管是电路中最常用的两个电子元器件,种类和系列众多,这里简单总结一下应用场景和选型方式 电容(Capacitor) 电容的种类(20种以上)和应用非常广泛,但是我经常遇到的无非就是下面这几种: 应用 1.隔直流。 2.旁路(去耦) 3.耦合 4.滤波 5.温度补偿 6.计时 7.调谐 8.整流 9.储能 种类 1. 陶瓷电容 2. 云母电容 3. 铝电解电容 4. 钽

weixin_43904073的博客 2236

Javaweb 监听器 HttpSessionListener统计当前在线人数

HttpSessionListener统计当前在线人数

weixin_43432438的博客 796

别再为模糊的3D重建头疼了!手把手教你用3DSlicer处理DICOM数据,搞定医学影像三维可视化

本文详细解析了医学影像三维重建中常见的模糊问题,并手把手教你使用3DSlicer处理DICOM数据,实现精准的三维可视化。从层厚设置到数据格式转换,再到重建算法选择和渲染参数微调,提供了一套完整的优化方案,特别适合临床医生和医学影像处理人员提升工作效率。

weixin_28693447的博客 246

小滴课堂-新版JavaWeb零基础到实战专题课程-11

什么是监听器。

xdclass888的博客 227

高频面波成像实战:从频散曲线到全波形反演

面波勘探是近地表工程勘察的重要手段,其核心原理在于不同频率的面波对地下介质的敏感深度不同,由此形成的频散曲线能够反映浅层剪切波速结构。相较于传统钻探与折射波法,高频面波成像具有无损、高效、对低速夹层敏感等优势,广泛应用于路基检测、空洞探测、滑坡调查等领域。在实际工程中,从野外采集的排列设计、震源选型,到频散谱提取与频散曲线反演,每一步都直接影响成像精度。然而频散反演受限于一维层状假设,难以刻画横向剧烈变化的地质体。全波形反演通过拟合完整波形信息,能够突破频散曲线的分辨率边界,获得更精细的近地表速度模型。本文

weixin_29090917的博客 270

逆变器并联--下垂控制引入虚拟阻抗

说明传统下垂控制的缺点、分析虚拟阻抗的原理和实现方法

weixin_58670090的博客 1万+

编程自学指南:java程序设计开发,过滤器(Filter)与监听器(Listener)基础全解析 , Listener 的事件监听机制,Filter 实现编码统一、权限控制

编程自学指南:java程序设计开发,过滤器(Filter)与监听器(Listener)基础全解析 , Listener 的事件监听机制,Filter 实现编码统一、权限控制

zl515035644的博客 768

Nginx下ModSecurity模块安装详细教程

本文提供了在Nginx 1.28.0上安装ModSecurity v3的完整教程。首先需安装编译依赖,然后从源码编译安装ModSecurity库并设置优化参数。接着编译Nginx动态模块并配置加载。核心配置包括设置规则引擎、日志路径及性能优化参数。安装OWASP核心规则集后,在Nginx站点配置中启用ModSecurity。最后测试规则有效性并给出性能优化建议,如规则排除、精简规则集等。整个过程包含详细的命令和配置示例,确保安全防护功能正常运作。

深山技术宅的博客 1782

Servlet-JSP-课堂笔记

Servlet-JSP-课堂笔记

qq_46614491的博客 599

ZYNQ系列PS侧和PL侧DDR3或DDR4在AD(Altium Designer 25)中的layout布线规则约束

DDR3或DDR4的PCB布线规则通常有相对固定的要求,对应的,在PCB设计时有固定的约束设置。

FPGA艺术家的博客 786

apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】

这个是最最简单的反编译操作了。写这个教程的目的是其中很多粉丝要求出一点入门的教程。当然演示的是使用MT来操作。还有很多类似的软件可以达到目的。例如NP apltool等等或者电脑端也有很多反编译软件修改。对于玩机用户来说。也可以在系统包里直接修改一些app。

小马哥的专栏 7261

小滴课堂-学习笔记:小滴课堂面试专题介绍+简历分析+投递

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 小滴课堂面试专题课程介绍+适合人员+学后水平 第2集 小滴课堂面试专题第一季大纲速览,你知道多少 第3集 互联网公司校/社招的招聘要求解读 第4集 学历/部分招聘条件不符合? 互联网公司简历投递技巧 第5集 BAT大厂社招、校招、内推常见的面试形式有多少 第6集 拿到面试通知,怎样应对互联网公司的多轮面试 第7集 社招+校招被技术面试完虐系列之多方位考查点 干货文档 第1集 小滴.

dev666的博客 2399

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

从Java到Android开发: 监听器Listener接口

文章目录1. 再谈接口1.1 定义接口接口回调将接口作为参数接口的理解接口对象作为函数的参数Android事件的监听注册监听器的几种写法实例: 为Button注册监听器 1. 再谈接口 1.1 定义接口 定义接口的一般格式如下: [public] interface 接口名 [extends 父接口名]{ [public] [static] [final] 数据类型 常量名 = 常量;//常量声明 [public] [abstract] 返回类型 方法名(参数列表);//抽象方法声明 } 接口可以抽

Vae_1118的博客 1559

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

小滴课堂-学习笔记:(1)JAVASE课程

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 茫茫人海中为何选择java这门语言 第2集 速成系列java从入门到告诉高手课程介绍 第3集 Java语言编程发展历程和JVM概述 第4集 概念理解面向对象编程和特点 第二章 Java开发环境准备和基础语法第一季 第2集 新版Java环境变量配置 第3集 完成你的第一个Java程序Hello World 第4集 Hello World程序剖析Java语法 第三章 集成开发环..

dev666的博客 2015

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Discuz X2.5 修改在线人数方…

原文地址:X2.5 修改在线人数方法">Discuz X2.5 修改在线人数方法作者:Ethan打开sourcemoduleforum目录 找到forum_index.php这个文件 搜索$onlinenum = C::app()->session->count(); X2.5 修改在线人数方法" TITLE="[转载]Discuz X2.5 修改在线人数方法" /> 在这句话下面添加对$on

Vindra's blog 953

jdk8笔记 - 集合框架

1.的流stream的使⽤ 什么是 Stream: Stream(流)是一个来自数据源的元素队列并支持聚合操作。 元素是特定类型的对象,形成一个队列。 Java中的Stream并不会存储元素,而是按需计算。 数据源 流的来源。 可以是集合,数组,I/O channel, 产生器generator 等。 聚合操作 类似SQL语句一样的操作, 比如filter, map, reduce, find, ...

hecr_mingong的博客 573

监听器实现网站在线人数

使用监听器实现网站历史访问量 117333440127 黄瑞生 1.创建java类实现监听器接口 package com.hrs; import javax.servlet.ServletContext; import javax.servlet.annotation.WebListener; import javax.servlet.http.HttpSessionEvent; import j...

zhutoupi_的博客 297

JavaWeb(10)之Listener(监听器)

监听器(Listener) 什么是监听器 监听器的用途 用来监听其他对象的变化的。主要应用在图形化界面开发上。 Java中GUI、Android 监听器可以用来检测网站的在线人数,统计网站的访问量等等! 监听器的术语 监听器可以想象成现实生活中的例子: 汽车都有报警器,你踹一脚汽车,汽车的报警器就会报警,这就是监听。 监听器的入门 监听器的入门程序 这里我们使用swing来演示监听效果 首先...

笑笑不说话 440

小滴课堂-学习笔记:前端-后端项目云服务器生产环境部署核心知识

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 小滴课堂互联网架构之应用部署上线核心知识 第2集 云服务器介绍和阿里云服务器ECS服务器选购 第3集 阿里云服务器远程登录和常用工具 生产环境Linux CentOS云服务器常见相关软件安装 第1集 阿里云Linux服务器Centos7 安装JDK8环境 第2集 生产环境Linux服务器上Nginx介绍和安装 第3集 生产环境Linux服务器上Mysql安装和导入数据 小滴课堂综合.

dev666的博客 2390

小滴课堂-学习笔记:(7)提效神器之代码自动生成MybatisPlus-Generator+Lombok

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 项目引入Mybatis-plus-generator代码自动生成工具 第2集 自动化生成代码-加入项目和自动化工具思考 第3集 提效神器-MyBatisPlus课程总结 干货文档 第1集 项目引入Mybatis-plus-generator代码自动生成工具 简介:介绍Mybatis-plus-generator代码自动化生成工具 Mybatis-plus-generator..

dev666的博客 1061
上一篇: 小滴课堂-学习笔记:新版Javaweb核心之文件上传下载实战
下一篇: 小滴课堂-学习笔记:全栈工程师必备之新版Vue2.6 急速掌握核心内容
dev666
博客等级 码龄9年 100粉丝 106原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dev666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值