监听器的概述
监听器就是一个实现了特定接口的Java类,这个Java类用于监听另一个Java类的方法调用或者属性的改变。当被监听对象发生上述事件后,监听器某个方法将会立即被执行。
监听器的用途
用来监听其他对象的变化的。主要应用在图形化界面开发上。
监听器的术语
- 事件源:指的是被监听对象(汽车)
- 监听器:指的是监听的对象(报警器)
- 事件源和监听器绑定:在汽车上安装报警器
- 事件:指的是事件源对象的改变(踹了汽车一脚)----主要功能获得事件源对象。
监听器的入门
监听器的执行过程
Servlet中的监听器
在Servlet中定义了多种类型的监听器,它们用于监听的事件源分别是ServletContext、HttpSession和ServletRequest这三个域对象。
Servlet中的监听器的分类
- 一类:监听三个域对象的创建和销毁的监听器(三个)
- 二类:监听三个域对象的属性变更(属性添加、移除、替换)的监听器(三个)
- 三类:监听HttpSession中JavaBean的状态改变(钝化、活化、绑定、解除绑定)的监听(两个)
ServletContextListener监听器的使用
ServletContext创建和销毁
- 创建:在服务器启动的时候,为每个web应用创建单独的ServletContext对象。
- 销毁:在服务器关闭的时候,或者项目从web服务器中移除的时候。
监听器代码
监听器的配置
HttpSessionListener监听器的使用
HttpSessionListener监听器用来监听HttpSession对象的创建和销毁
HttpSession创建和销毁
- 创建:
- 服务器端第一次调用getSession()方法时候。
- 销毁:
- 非正常关闭服务器(正常关闭服务器session会被序列化)。
- Session过期(默认过期时间30分钟)。
- 手动调用session.invalidate()方法。
public class HttpSessionListeren implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println("HttpSessionListeren加载了...");
}
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println("HttpSessionListeren删除了....");
}
}
统计当前在线人数的案例
创建ServletContextListener进行初始化
创建HttpSessionListener
配置监听器
创建jsp