java web自定义监听器_JavaWeb技术(9):Listener

Listener能干嘛监听器,顾名思义就是用于监听某种动作而做出反应,根据动作的类型和监听对象的类型分为以下几种:ServletContext-------ServletContextListener-------ServletContextAttributeListenerHttpSession-------HttpSessionListener-------HttpSessionAttribu...
摘要由CSDN通过智能技术生成

Listener能干嘛

监听器,顾名思义就是用于监听某种动作而做出反应,根据动作的类型和监听对象的类型分为以下几种:

ServletContext

-------ServletContextListener

-------ServletContextAttributeListener

HttpSession

-------HttpSessionListener

-------HttpSessionAttributeListener

ServletRequest

-------ServletRequestListener

-------ServletRequestAttributeListener

用ServletContext来举个例子,当Tomcat创建ServletContext时,ServletContextListener就会监听到这个操作,

当ServletContext中的属性发生变化时,ServletContextAttributeListener会监听到这类操作。

Listener的运作流程

现在已经知道Listener的作用了,那它是如何进行监听的呢,

在看下面这张图之前,可以思考一下这个问题:监听器如何知道被监听对象的发生了指定的操作?监听器一直循环检测被监听对象操作的某个公共的值是否发生变化

被监听对象的发生了指定的操作时主动向监听器报告

第一种方式明显不合理并且也不优雅,

在设计模式中,这种称为观察者模式,也就是第二种方式,

好!现在我知道被监听对象的发生了指定的操作时会主动向监听器报告了,

但我怎么知道被监听对象应该向哪个监听器报告呢?

这就需要注册了,被监听对象主动注册一个监听器在本地就行,之后在调用被监听对象的指定操作时,会调用保存在本地的监听器实例中某个方法就行,Java代码就这么写,

流程示意图如下:

实例代码:

/*** 监听事件,用于包裹被监听对象** @title: Event* @Author myllxy* @Date: 20-10-18 下午9:26* @Version 1.0*/

public class Event {

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值