一、 事件监听
1. 在程序中经常会用到事件监听机制
2. 关键字:
事件: 用户的一个操作, 可以是点击一个按钮、调用一个方法、创建一个对象
事件源: 发生事件的对象
事件监听器: 负责监听发生在事件源上的事件
事件处理器: 监听器的成员方法,当事件发生的时候会触发对应的处理器(成员方法)
3. 事件处理机制
1) 将监听器绑定到事件源
2) 事件发生触发监听器的成员方法,即事件处理器,传递事件对象
3) 事件处理器通过事件获得事件源,进行处理
4. 做事件监听一般都需要做两件事情
1) 写一个类实现监听器接口
2) 将监听器注册到事件源上
二、 servlet事件监听器
1. 在Servlet 技术中主要有三类事件监听器:
1) 监听三个域对象的创建和销毁
ServletContextListener、HttpSessionListener、HttpServletRequestListener
三个监听器都是接口类型
public interface ServletContextListener
{
// 事件处理器
init
destroy
}
web应用启动时, web 容器会将所有的监听器都实例化,并绑定到对应的事件源上
2) 监听三个域对象中属性的变化(增加、删除和替换)
setAttribute getAttribute removeAttribute
ServletContextAttributeListener,
HttpSessionAttributeListener
ServletRequestAttributeListener
处理器
attributeAdded
attributeReplaced
attributeRemoved
3) 感知对象被绑定到session域
HttpSessionBindingListener
该接口由javabean对象来实现
该监听器不需要注册
案例: 统计来访者的ip ServletRequestListener
统计在线人数 HttpSessionListener
统计在线用户 HttpSessionBindingListener
session定时扫描器 HttpSessionListener