Listener概述

Listener概述回到首页 Listener 至今没有用过 但是不是说明它不重要 只是作为业务编码人员 往往用不到 而作为框架平台开发人员 listener 是必不可少的强大的工具 1 概述 Listener 是 Servlet 规范的另一个高级特性 用于监听 JavaWeb 程序中的事件 例如创建 修改 删除 Session request context 等 并触发响应的事件 利用 Listener 能够用很少的代码实现很绚丽的

回到首页☞

Listener至今没有用过,但是不是说明它不重要,只是作为业务编码人员,往往用不到。而作为框架平台开发人员listener是必不可少的强大的工具。

1、概述

Listener是Servlet规范的另一个高级特性。用于监听Java Web程序中的事件,例如创建、修改、删除Session、request、context等,并触发响应的事件。利用Listener能够用很少的代码实现很绚丽的效果。

Listener对应设计模式Listener,用于做event的监听。

Java Web程序使用Listener与Event完成相应事件的处理,使用Listener不需要关注该类事件是怎样触发或者怎样调用响应应用的Listener,只要基础该类事件触发时一定会调用响应的Listener。遵循Servlet规范的服务器完成了相应的工作,开发者只要在Listener里编写相关的代码就行了。

2 Listener的使用

使用Listener需要实现相应的Listener接口,应该触发Listener事件的时候,Tomcat会自动调用Listener的方法。

2.1 代码举例

三类监听,可以直接在一起实现,这样方便使用,分别监听三个Java Web核心对象的创建和销毁动作。

package com.wht.demo.listener; / * @author JDIT */ import org.apache.log4j.Logger; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; import javax.servlet.http.HttpSessionBindingEvent; @WebListener() public class SessionListenerTest implements ServletContextListener, HttpSessionListener, HttpSessionAttributeListener { 
    // Public constructor is required by servlet spec public SessionListenerTest() { 
    } // ------------------------------------------------------- // ServletContextListener implementation // ------------------------------------------------------- public void contextInitialized(ServletContextEvent sce) { 
    /* This method is called when the servlet context is initialized(when the Web application is deployed). You can initialize servlet context related data here. */ } public void contextDestroyed(ServletContextEvent sce) { 
    /* This method is invoked when the Servlet Context (the Web application) is undeployed or Application Server shuts down. */ } // ------------------------------------------------------- // HttpSessionListener implementation // ------------------------------------------------------- public void sessionCreated(HttpSessionEvent se) { 
    /* Session is created. */ } public void sessionDestroyed(HttpSessionEvent se) { 
    /* Session is destroyed. */ } // ------------------------------------------------------- // HttpSessionAttributeListener implementation // ------------------------------------------------------- public void attributeAdded(HttpSessionBindingEvent sbe) { 
    /* This method is called when an attribute is added to a session. */ } public void attributeRemoved(HttpSessionBindingEvent sbe) { 
    /* This method is called when an attribute is removed from a session. */ } public void attributeReplaced(HttpSessionBindingEvent sbe) { 
    /* This method is invoked when an attibute is replaced in a session. */ } } 

2.2 监听配置

 <listener> <listener-class>com.wht.demo.listener.SessionListenerTest</listener-class> </listener> 

一个完整的Listener包括Linstener类、 配置。一个web.xml中可以配置多个Listener。同一种类型的Listener也可以配置多个,触发的时候服务器会顺次执行各个Listener的相应方法。

回到首页☞

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227666.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午8:49
下一篇 2026年3月16日 下午8:49


相关推荐

  • Ubuntu 16.04 上安装 CUDA 9.0 详细教程

    Ubuntu 16.04 上安装 CUDA 9.0 详细教程前言:     本篇文章是基于之前安装CUDA7.5的经验写的,但因为最近更新TensorFlow到了r0.12版本,官方提示该版本TensorFlow和CUDA8.0&cudnnv5.1配合的最好,所以又卸了CUDA7.5,重新装了一遍CUDA8.0,安装的过程中发现了之前文档里的些许不足,于是做了稍许修改。

    2022年5月2日
    97
  • Java程序员,你一定需要了解的六款大数据采集平台

    Java程序员,你一定需要了解的六款大数据采集平台随着大数据越来越被重视,数据采集的挑战变的尤为突出。今天为大家介绍几款数据采集平台: ApacheFlume Fluentd Logstash Chukwa Scribe SplunkForwarder 大数据平台与数据采集任何完整的大数据平台,一般包括以下的几个过程: 数据采集 数据存储 数据处理 …

    2022年6月6日
    127
  • css 去掉超链接样式「建议收藏」

    css 去掉超链接样式「建议收藏」我们可以用CSS语法来控制超链接的形式、颜色变化,为什么链接一定要使用下划线和颜色区分呢?其主要原因主要是考虑到1、视力差的人2、色盲的人。。。下面我们做一个这样的链接:未被点击时超链接文字无下划线,显示为蓝色;当鼠标在链接上时有下划线,链接文字显示为红色;当点击链接后,链接无下划线,显示为绿色。实现方法很简单,在源代码的和之间加上如下的CSS语法控制: …

    2022年7月19日
    62
  • 汇编指令 – 状态寄存器、cmp、test、jz等指令

    汇编指令 – 状态寄存器、cmp、test、jz等指令汇编指令 状态寄存器 cmp test jz 等指令

    2026年3月26日
    2
  • DOS窗口命令大全用法及其详解

    DOS窗口命令大全用法及其详解Dos 命令大全入门 dos 命令教程一 什么是 DOS 命令 DOS 是英文 DiskOperatin 的缩写 意思是 磁盘操作系统 顾名思义 DOS 主要是一种面向磁盘的系统软件 说得简单些 DOS 就是人与机器的一座桥梁 是罩在机器硬件外面的一层 外壳 有了 DOS 我们就不必去深入了解机器的硬件结构 也不必去死记硬背那些枯燥的机器命令 我们只需通过一些接近于自然语言的 DOS 命令 就可以

    2026年3月18日
    2
  • Ubuntu系统关闭防火墙

    Ubuntu系统关闭防火墙Ubuntu 系统防火墙设置 1 查看防火墙当前状态 sudoufwstatu 终端展示 2 开启防火墙 sudoufwenabl 终端展示 3 关闭防火墙 sudoufwdisab 终端展示 4 允许外部访问本机 sudoufwdefau 终端展示 5 拒绝外部访问主机 sudoufwdefau 终端展示 6 允许某个 IP 地址访问本机所有端口 sudoufwallow 168 xxxx 终端展示

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号