JavaWeb的高级、Listener监听器--Servlet事件

2023-11-20

一、学习目标
1、Listener监听器
2、Listener监听器作用
3、Listener监听器的创建与销毁
二、重点知识
1、Listener监听器
Filter和Listener是Servlet规范中的两个高级特性,不同于Servlet,他们不用于处理客户端请求。Filter是用于对request、response对象进行修改,Listener用于对context、session、request事件进行监听。善用Servlet规范中的这两个高级特性能够轻松地解决一些特殊问题。
1.1添加Listener() 方法

在用户点击按钮时触发监听事件:
document.getElementById("myBtn").addEventListener("click", displayDate);

2、 Listener监听三个域对象创建与销毁
2.1 监听ServletContext域对象的创建与销毁:实现ServletContextListener接口
ServletContext域对象的生命周期:
创建:启动服务器时创建
销毁:关闭服务器或者从服务器移除项目

@WebListener
		public class MyServletContextListener implements ServletContextListener{
   
			@Override
			public void contextInitialized(ServletContextEvent arg0) {
   
				System.out.println("初始化");
			}
			@Override
			public void contextDestroyed(ServletContextEvent arg0) {
   
				System.out.println("销毁了");
			}
		}

作用:
利用ServletContextListener监听器在创建ServletContext域对象时完成一些想要初始化的工作或者执行自定义任务调度。
2.2 监听ServletRequest域对象的创建与销毁:实现ServletRequestListener接口。
ServletRequest域对象的生命周期:
创建:访问服务器任何资源都会发送请求(ServletRequest)出现,访问.html和.jsp和.servlet都会创建请求。
销毁:服务器已经对该次请求做出了响应。

@WebListener
		public class MyServletRequestListener implements ServletRequestListener{
   
			@Override
			public void requestDestroyed(ServletRequestEvent arg0) {
   
				System.out.println("ServletRequest销毁了");
			}
			@Override
			public void requestInitialized(ServletRequestEvent arg0) {
   
				System.out.println("ServletRequest创建了");
			}
		}

2.3 监听HttpSession域对象的创建与销毁:实现HttpSessionListener接口:
HttpSession域对象的生命周期:
创建:只要调用了getSession()方法就会创建,一次会话只会创建一次,
销毁:1.超时(默认为30分钟)2.非正常关闭,销毁3.正常关闭服务器(序列化)

@WebListener
		public class MyHttpSessionListener implements HttpSessionListener{
   
			@Override
			public void sessionCreated(HttpSessionEvent arg0) {
   
				System.out.println("HttpSession创建了");
			}
			@Override
			public void sessionDestroyed(HttpSessionEvent arg0) {
   
				System.out.println("HTTPSession销毁了");
			}
		}

作用:每位用户登录网站时都会创建一个HTTPSession对象,利用这个统计在线人数。

  • Listener监听三个域对象属性状态的改变
    监听HttpSession属性的改变:实现HttpSessionAttributeListener接口。
    监听ServletContext属性的改变:实现ServletContextAttribute接口。
    监听ServletRequest属性的改变:实现ServletRequestAttribute接口。

三、实际运用
1.创建监听器:
在chepter11创建一个chapter11.listener包,编写一个mylistener类,用来实现若干个监听器接口。
代码示例:

mylistener.java
package chapter11.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;
import javax.servlet
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaWeb的高级、Listener监听器--Servlet事件 的相关文章

随机推荐

  • uni-app项目中使用scss语法

    最近正在学习uni app开发 我先把文档浅略翻了遍 发现组件和接口几乎都是按照微信小程序走 但是视图层上的语法又是按照vue的语法走的 所以开发过程一定要注意这点 然后我想在uni app项目中使用scss语法 但是具体怎么安装呢 历经曲
  • 优秀的内存规划方法——环形缓冲区(ring buffer)

    目录 什么是环形缓冲区 使用环形buffer的好处 环形buffer的使用场景 进程间通信 网络IO 区分缓冲区是满或者是空 计数 保持一个存储单元为空 镜像指示位 buffer满了之后的操作 实时流 存储流 什么是环形缓冲区 线性缓冲区
  • 数据库初级入门sqlite3版本

    0 数据库大纲 数据库是什么 如何在在命令行使用SQL语句操作数据库 如何在C C 程序中操作数据库 1 数据库和数据库管理系统及数据库系统 数据库是一个存储数据 电子化表格 的仓库 数据库 简单来说可以看做是一个电子化的文件柜 gt 存储
  • vue element select下拉框树形多选

    components 文件下新建 SelectTree文件 index vue SelectTree index vue
  • 中关村十大AI研究院

    雷刚 发自 凹非寺 量子位 报道 公众号 QbitAI 不知你是否有同样的困惑 最近 秋季校招正在接近尾声 但意外不少非应届同学也关注起未来实习的话题 对于有志于投身AI研发的同学 有没有一些既能发论文 又贴进产业前沿 还比较近的实习机构
  • Unity3D的四种坐标系

    1 World Space 世界坐标 我们在场景中添加物体 如 Cube 他们都是以世界坐标显示在场景中的 transform position可以获得该位置坐标 2 Screen Space 屏幕坐标 以像素来定义的 以屏幕的左下角为 0
  • Wireshark抓包及DNS报文分析

    Wireshark抓包及DNS报文分析 来来来 点我进行5分钟视频学习 冲冲冲 一 抓包整体描述 第一行 帧Frame 2 指的是要发送的数据块 其中 所抓帧的序号为2 捕获字节数等于传送字节数 696字节 第二行 以太网 有线局域网技术
  • java正则表达式的语法详解及常用方法

    一 实例 今天在实现一个功能时遇到了这样一个问题 及接口传过来一个字符串 我需要判断它是一个区间还是一段文字并对其做分别处理 这里面的问题就在于我怎么去判断区间 按照数学规律区间可分为以下几种情况 M M N N N M N M N N N
  • 计算机网络重点知识(期末考研复习)

    点个关注 更多精彩持续更新为考研和期末助力 一起加油 计算机网络 第一章 思维导图 概述 计算机网络的主要性能指标 计算机网络的体系结构 OSI RM模型 TCP IP 两种模型对比 第二章 思维导图 数据通信主要指标与信道极限容量 多路通
  • java8新特性学习笔记

    使用lambda表达式排序 Collections sort temp String a String b gt return b compareTo a Collections sort temp String a String b gt
  • Camera2拍照时部分机型非常暗

    一 问题描述 1 部分手机在弱光环境下不管什么分辨率 预览和拍出来的照片都非常的暗 2 部分手机在弱光环境下 预览分辨率1920x1080 输出图片分辨率1920x1080时 预览和拍出来的照片亮度比较亮 但是在预览分辨率1920x1080
  • 重现U盘文件

    U盘中毒了 查毒后发现U盘空间还在 但是就是无法查看里面的文件 在 工具 gt 文件夹选项 中设置成 显示系统文件夹中的内容 去掉 隐藏受保护的操作系统文件 推荐 以及设置成 显示所有文件和文件夹 也不能正常显示 最近遇到很多优盘中的文件夹
  • 图像特征提取技术

    目 录 前 言 基于颜色的特征提取 1 颜色空间 2 直方图以及特征提取 基于纹理的特征提取 1 灰度共生矩阵 2 tamura纹理 基于深度神经网络的图像处理 前 言 图像特征提取属于图像分析的范畴 是数字图像处理的高级阶段 本文将从理论
  • SeleniumLibrary4.5.0 关键字详解(三)

    SeleniumLibrary4 5 0 关键字详解 三 库版本 4 5 0 库范围 全局 命名参数 受支持 简介 SeleniumLibrary是Robot Framework的Web测试库 本文档说明了如何使用SeleniumLibra
  • 获取对象Object的长度

    获取对象的长度 obj id 1 id2 1 id3 1 id4 1 id5 1 id6 1 id7 1 id8 1 id9 1 id10 1 let i Object keys this obj length console log i
  • 嵌入式linux 搭建L2TP+IPSEC客户端

    搭建L2TP IPSEC客户端需要对应的源码 xl2tpd 1 3 10和openswan 还需要一些依赖的库 gmp libpcap 一 安装openswan 安装依赖库gmp 6 1 2 1 下载 https gmplib org DO
  • C#操作SqlServer数据库,以及其常用的对象

    C 操作SQL Server数据库 1 概述 ado net提供了丰富的数据库操作 这些操作可以分为三个步骤 第一 使用SqlConnection对象连接数据库 第二 建立SqlCommand对象 负责SQL语句的执行和存储过程的调用 第三
  • 服务器备案问题解决思考?

    大家和我一样有没有在项目上线之后遇到服务器需要备案的问题呢 遇到这个问题的原因 域名没有备案 可是我发现我域名本案后还是无法通过域名直接解析到服务器80端口 所以我百度后发现 服务器竟然也要备案 而且备案步骤 手续与域名备案相比是真的麻烦
  • Docker搭建mysql主从

    目录 1 安装配置master 1 1 运行mysql容器 1 2 更新基础软件和安装vim 1 3 编辑配置文件 1 4 创建用户并授权 用于再主从库之间同步数据 2 slave数据库安装配置 2 1 运行容器 2 2 进入容器内部 2
  • JavaWeb的高级、Listener监听器--Servlet事件

    一 学习目标 1 Listener监听器 2 Listener监听器作用 3 Listener监听器的创建与销毁 二 重点知识 1 Listener监听器 Filter和Listener是Servlet规范中的两个高级特性 不同于Servl