JavaWeb的三大组件分别是: Servlet 程序、Listener 监听器、Filter 过滤器,我们这篇文章探索Listener底层原理,和使用场景。


一、简介

监听器用于监听Web应用中某些对象的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应处理。Java事件监听器是由事件类和监听接口组成,自定义一个事件前,必须提供一个事件的监听接口以及一个事件类。JAVA中监听接口是继承java.util.EventListener的类,事件类继承java.util.EventObject的类。

二、对象

监听器模型涉及以下三个对象:

  • 事件:用户对组件的一个操作,或者说程序执行某个方法,称之为一个事件,如机器人程序执行工作。
  • 事件源:发生事件的组件就是事件源,也就是被监听的对象,如机器人可以工作,可以跳舞,那么就可以把机器人看做是一个事件源。
  • 事件监听器(处理器):监听并负责处理事件的方法,如监听机器人工作情况,在机器人工作前后做出相应的动作,或者获取机器人的状态信息。

java EventListener java eventlistener接口类原理_java

二、分类

按监听的对象划分

  • ServletContext对象的监听器
  • HttpSession对象的监听器
  • ServletRequest对象的监听器

按监听的事件划分

  • 对象自身的创建和销毁的监听器
  • 对象中属性的创建和消除的监听器
  • session中的某个对象的状态变化的监听器

三、实现

执行顺序如下:

1、给事件源注册监听器。
2、组件接受外部作用,也就是事件被触发。
3、组件产生一个相应的事件对象,并把此对象传递给与之关联的事件处理器。
4、事件处理器启动,并执行相关的代码来处理该事件。

四、监听器模式

事件源注册监听器之后,当事件源触发事件,监听器就可以回调事件对象的方法;更形象地说,监听者模式是基于:注册-回调的事件/消息通知处理模式,就是被监控者将消息通知给所有监控者。 

1、注册监听器:事件源.setListener。
2、回调:事件源实现onListener。