监听器(Listener)学习二

【WRF-Urban】使用 LCZ 替换 WRF 运行中的 LUCC 数据 使用 LCZ 替换 WRF 运行中的 LUCC 数据 阅读详情

一、监听域对象中属性的变更的监听器

  域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。
  这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener,这三个接口中都定义了三个方法来处理被监听对象中的属性的增加,删除和替换的事件,同一个事件在这三个接口中对应的方法名称完全相同,只是接受的参数类型不同。

1.1、attributeAdded 方法

  当向被监听对象中增加一个属性时,web容器就调用事件监听器的attributeAdded方法进行响应,这个方法接收一个事件类型的参数,监听器可以通过这个参数来获得正在增加属性的域对象和被保存到域中的属性对象
  各个域属性监听器中的完整语法定义为:

1 public void attributeAdded(ServletContextAttributeEvent scae)
2 public void attributeReplaced(HttpSessionBindingEvent  hsbe)
3 public void attributeRmoved(ServletRequestAttributeEvent srae)

1.2、attributeRemoved 方法

  当删除被监听对象中的一个属性时,web容器调用事件监听器的attributeRemoved方法进行响应
  各个域属性监听器中的完整语法定义为:

1 public void attributeRemoved(ServletContextAttributeEvent scae)
2 public void attributeRemoved (HttpSessionBindingEvent  hsbe)
3 public void attributeRemoved (ServletRequestAttributeEvent srae)

1.3、attributeReplaced 方法

  当监听器的域对象中的某个属性被替换时,web容器调用事件监听器的attributeReplaced方法进行响应
  各个域属性监听器中的完整语法定义为:

1 public void attributeReplaced(ServletContextAttributeEvent scae)
2 public void attributeReplaced (HttpSessionBindingEvent  hsbe)
3 public void attributeReplaced (ServletRequestAttributeEvent srae)

1.4、ServletContextAttributeListener监听器范例:

  编写ServletContextAttributeListener监听器监听ServletContext域对象的属性值变化情况,代码如下:

package me.gacl.web.listener;

import java.text.MessageFormat;

import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;

/**
* @ClassName: MyServletContextAttributeListener
* @Description: ServletContext域对象中属性的变更的事件监听器
* @author: 孤傲苍狼
* @date: 2014-9-11 下午10:53:04
*
*/ 
public class MyServletContextAttributeListener implements
        ServletContextAttributeListener {

    @Override
    public void attributeAdded(ServletContextAttributeEvent scab) {
        String str =MessageFormat.format(
                "ServletContext域对象中添加了属性:{0},属性值是:{1}"
                ,scab.getName()
                ,scab.getValue());
        System.out.println(str);
    }

    @Override
    public void attributeRemoved(ServletContextAttributeEvent scab) {
        String str =MessageFormat.format(
                "ServletContext域对象中删除属性:{0},属性值是:{1}"
                ,scab.getName()
                ,scab.getValue());
        System.out.println(str);
    }

    @Override
    public void attributeReplaced(ServletContextAttributeEvent scab) {
        String str =MessageFormat.format(
                "ServletContext域对象中替换了属性:{0}的值"
                ,scab.getName());
        System.out.println(str);
    }
}

在web.xml文件中注册监听器

1  <listener>
2       <description>MyServletContextAttributeListener监听器</description>
3       <listener-class>me.gacl.web.listener.MyServletContextAttributeListener</listener-class>
4   </listener>

编写ServletContextAttributeListenerTest.jsp测试页面

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
  <head>
    <title>ServletContextAttributeListener监听器测试</title>
  </head>
  
  <body>
        <%
           //往application域对象中添加属性
           application.setAttribute("name", "孤傲苍狼");
          //替换application域对象中name属性的值
           application.setAttribute("name", "gacl");
           //移除application域对象中name属性
           application.removeAttribute("name");
           %>
  </body>
</html>

运行结果如下:

从运行结果中可以看到,ServletContextListener监听器成功监听到了ServletContext域对象(application)中的属性值的变化情况。

1.5、ServletRequestAttributeListener和HttpSessionAttributeListener监听器范例:

  编写监听器监听HttpSession和HttpServletRequest域对象的属性值变化情况,代码如下:

package me.gacl.web.listener;

import java.text.MessageFormat;

import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;

public class MyRequestAndSessionAttributeListener implements
        HttpSessionAttributeListener, ServletRequestAttributeListener {

    @Override
    public void attributeAdded(ServletRequestAttributeEvent srae) {
        String str =MessageFormat.format(
                "ServletRequest域对象中添加了属性:{0},属性值是:{1}"
                ,srae.getName()
                ,srae.getValue());
        System.out.println(str);
    }

    @Override
    public void attributeRemoved(ServletRequestAttributeEvent srae) {
        String str =MessageFormat.format(
                "ServletRequest域对象中删除属性:{0},属性值是:{1}"
                ,srae.getName()
                ,srae.getValue());
        System.out.println(str);
    }

    @Override
    public void attributeReplaced(ServletRequestAttributeEvent srae) {
        String str =MessageFormat.format(
                "ServletRequest域对象中替换了属性:{0}的值"
                ,srae.getName());
        System.out.println(str);
    }

    @Override
    public void attributeAdded(HttpSessionBindingEvent se) {
        String str =MessageFormat.format(
                "HttpSession域对象中添加了属性:{0},属性值是:{1}"
                ,se.getName()
                ,se.getValue());
        System.out.println(str);
    }

    @Override
    public void attributeRemoved(HttpSessionBindingEvent se) {
        String str =MessageFormat.format(
                "HttpSession域对象中删除属性:{0},属性值是:{1}"
                ,se.getName()
                ,se.getValue());
        System.out.println(str);
    }

    @Override
    public void attributeReplaced(HttpSessionBindingEvent se) {
        String str =MessageFormat.format(
                "HttpSession域对象中替换了属性:{0}的值"
                ,se.getName());
        System.out.println(str);
    }
}

在web.xml文件中注册监听器

 

1  <listener>
2       <description>MyRequestAndSessionAttributeListener监听器</description>
3       <listener-class>me.gacl.web.listener.MyRequestAndSessionAttributeListener</listener-class>
4   </listener>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

电子技术课程设计:声音音量峰值检测显示系统设计 本文介绍了声音音量峰值检测显示系统的设计方案。系统采用分立元件设计,不使用单片机和集成运放,包含电源模块、声音采集放大电路、峰值检测保持模块、比较器、A/D转换及显示控制等部分。麦克风信号经两级晶体管放大后,通过二极管-电容电路检测峰值并保持,再经A/D转换显示为数字值(0000-9999)。系统采用9V电池供电,包含启动/清除控制功能,能指示声音过低或过高状态。详细阐述了各模块电路设计、参数计算和仿真验证,并提供了完整的原理图和PCB布线方案。该系统实现了声音峰值电压的准确检测与数字显示功能。 阅读详情

相关推荐

Ubuntu20.04下运行VINS系列:VINS-Mono、VINS-Fusion和GVINS

安装好了VINS-Mono所需的ROS noetic、Eigen3.4.0、Ceres2.10和OpenCV4.2.0等。VINS-Mono是在ROS melodic以及Ceres1的环境下开发的,因此需要适配高版本的环境。

zardforever123的博客 2万+

javaweb监听器详解

监听器启动顺序 1.多个监听器时按照web.xml加载顺序执行 2.优先级:监听器→过滤器→servlet 监听对象划分 1.用于监听应用程序对象(ServletContext)的事件监听器 2.用于监听用户会话对象(HttpSession)的事件监听器 3.用于监听请求消息对象(ServletRequest)的事件监听器 web.xml加入监听 &lt;listener&gt;...

个人博客 922

研究生研一学习机器学习ML、深度学习DL的规划

研究生学习机器学习DL、深度学习DL的规划 保上研之后也没有很好规划自己的学习路线,看到b站上的一位清华博士讲述他本科也是机械跨考计算机的学习路线,所以记录下来,从现在开始按照规划来一点一点地做好。 掌握python(推荐一周) 1.1 面向对象编程 廖雪峰python网站: https://www.liaoxuefeng.com 1.2 数据分析Numpy numpy 100题: https://www.yanxishe.com/columnDetail/24784 1.3数据分析pandas pan

没有最好,只有更好 3099

监听器

监听器 监听器是一个实现特定接口的普通Java程序,这个程序专门用于监听另一个Java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行 Listener接口与事件对应表 分类 Listener接口 Event类 与ServletContext有关 ServletContextListener ServletContextEvent ServletContex...

ruangong1的博客 368

液晶屏LVDS接口:【图文详讲】

​LVDS(Low Voltage Differential Signaling,即低电压差分信号)接口又称RS-644总线接口,是20世纪90年代才提出的一种数据传输和接口技术。LVDS接口是美国NS美国国家半导体公司为克服以TTL电平方式传输宽带高码率数据时功耗大,电磁干扰大等缺点而研制的一种数字视频信号传输方式

weixin_66299220的博客 1万+

手把手教你用思岚RPLIDAR C1激光雷达实现简单环境扫描(树莓派4B+Ubuntu22.04)

本文详细介绍了如何在树莓派4B(Ubuntu 22.04系统)上驱动思岚RPLIDAR C1激光雷达,从硬件连接、权限配置、SDK编译到运行示例程序,最终实现环境扫描数据的可视化。通过手把手教程,帮助开发者和爱好者快速上手激光雷达应用,构建简单的环境扫描图。

j2k3l4的博客 1131

JavaWEB开发-Servlet监听器

JavaWEB开发-Servlet监听器简介。 监听器:专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。 Servlet 监听器:Servlet 规范中定义的一种特殊类,它用于监听 web 应用程序中的 ServletContext, HttpSession 和 ServletRequest 等域对象的创建与销毁事件,以及监听这

2000

告别QQ截图!用C# Winform + 百度AI,自己动手做一个免费的文字提取小工具

本文详细介绍了如何利用C# Winform和百度AI OCR接口开发一款免费的文字提取工具,替代QQ截图功能。通过智能截图模块、OCR服务集成和主界面功能整合,实现高效准确的文字识别,适用于日常办公和学习场景。工具支持图像预处理、异步处理和错误日志记录,提升用户体验和识别准确率。

weixin_30566063的博客 380

Servlet系列学习笔记10 --- 监听器

目录 一、监听器的概念 二、监听器的类型 2.1 ServletContext监听对象 2.2 HttpSession监听对象 2.3 ServletRequest监听对象 三、注册监听器 一、监听器的概念 Servlet监听器也叫做 listener,它是Servlet规范中定义的一种特殊类。通过它可以监听Web应用上...

LaoYe的博客 664

Kafka 入门篇(一)

初识 Kafka 什么是 Kafka Kafka 的基本术语 Kafka 的特性(设计原则) Kafka 的使用场景 Kafka 的消息队列 点对点模式的消息队列 发布-订阅模式的消息队列 Kafka 系统架构 核心 API Kafka 为何如此之快 broker 端配置 broker.id port zookeeper.connect log.dirs num.recovery.threads.per.data.dir auto.create.topics.enable topic默认配置 num.par

1234

Arduino与震动马达模块握手

震动马达模块采用采用高品质手机震动马达,适用于震动感互动产品的制作,可穿戴智能设备震动提醒,适合作为非可听指示器的小型振动马达。当输入为高电平时电动机会震动,就像你的静音模式的手机一样。

vor234的博客 5847

JAVA学习笔记—JAVA WEB(二)JAVA WEB核心(下)

文章目录4. EL和JSTL核心技术4.1 EL表达式4.1.1 基本概念4.1.2 主要功能4.1.3 访问内置对象的数据4.1.4 访问请求参数的数据4.1.5 访问Bean对象的属性4.1.6 访问集合中的数据4.1.7 常用的内置对象4.1.8 常用的运算符4.2 JSTL标签4.2.1 基本概念4.2.2 使用方式4.2.3 常用核心标签4.2.4 常用函数标签4.2.5 常用格式化标签4.2.6 自定义标签5. Filter+Listener核心技术5.1 Filter过滤器5.1.1 基本概念

qq_40850871的博客 946

【数据集】CMIP6气候模式数据下载

简介CMIP6及其气候模式数据下载

WW、forever的博客 9354

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

一、监听域对象中属性的变更的监听器   域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。   这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRe

AlbenXie的博客 549

jre9下载 jdk9

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

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

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

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

javaweb学习总结(四十五)——监听器(Listener)学习二 一、监听域对象中属性的变更的监听器   域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。   这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener,

a754315344的博客 278

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

javaweb学习总结(四十五)——监听器(Listener)学习二,java面试手写代码

谈到面试,其实说白了就是刷题刷题刷题,天天作死的刷。。。。。为了准备这个“金三银四”的春招,狂刷一个月的题,狂补超多的漏洞知识,像这次美团面试问的算法、数据库、Redis、设计模式等这些题目都是我刷到过的并且我也将自己刷的题全部整理成了PDF或者Word文档(含详细答案解析)66个Java面试知识点架构专题(MySQL,Java,Redis,线程,并发,设计模式,Nginx,Linux,框架,微服务等)+大厂面试题详解(百度,阿里,腾讯,华为,迅雷,网易,中兴,北京中软等)算法刷题(PDF)

xiwanfd的博客 907

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

监听器(Listener)学习(二)

一、监听域对象中属性的变更的监听器   域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。  这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和Servlet...

weixin_33910434的博客 91

java web学习总结45:监听器(Listener)学习二

一、监听域对象中属性的变更的监听器   域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。   这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRe

云潇洒 329

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

一、监听域对象中属性的变更的监听器   域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。     这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletReq...

laomumu1992的博客 159

Javaweb10— 监听器(Listener)学习(二)

javaweb学习总结(四十五)——监听器(Listener)学习二 一、监听域对象中属性的变更的监听器  域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。  这三个监听器接口分别是ServletContextAttributeListener, HttpSes...

chenshiyang0806的博客 217

JavaWeb学习笔记(二)(过滤器Filter与监听器Listener)

JavaWeb学习笔记(二)概述一、过滤器(Filter)1.1 过滤器图解 概述 JavaEE阶段有三个大组件:Jsp/Servlet、Filter、Listener 一个普通的Java类继承了实现Servlet接口的实现类(HttpServlet),称为Servlet,也知道JSP就是Servlet 一、过滤器(Filter) 1.1 过滤器图解 一个普通的Java类实现了一个Servlet API提供的Filter接口的实现类,称为Filter。过滤器是比较核心的技术,它可以对WEB服务器

qq_47267252的博客 504

JavaWeb学习 (二十六)————监听器(Listener)学习(二)

一、监听域对象中属性的变更的监听器   域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。  这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRe...

weixin_34235371的博客 99
上一篇: Filter高级开发
下一篇: 监听器(Listener)学习
无知是恶
博客等级 码龄7年 9粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值