一、监听器概述
1、它是一个接口,内容由我们来实现
2、它需要注册,例如注册在按钮上
3、监听器中的方法会在特殊事件发生时被调用
我们用一个简单的例子来说明监听器的工作原理:
在监听器中有三个名词:事件源,事件,监听器
比如在一个酒店里发生了打架事件,警察来捉人。
事件源:打架的人
事件:打架
监听器:警察
监听器中的方法:捉人(一个监听器可以有多个方法,对不同的事件调用不同的方法)
二、JavaWeb中的监听器
事件源及其对应的监听:
ServletContext
:
(1)生命周期监听:ServletContextListener
,它有两个方法,一个是在出生时调用,一个在死亡是调用
(2)属性监听:ServletContextAttributeListener
,它有三个方法,一个在添加属性时调用,一个在替换属性时调用,一个在移除属性时调用HttpSession
(1)生命周期监听:HttpSessionListener
,它有两个方法,一个是在出生时调用,一个在死亡是调用
(2)属性监听:HttpSessionAttributeListener
,它有三个方法,一个在添加属性时调用,一个在替换属性时调用,一个在移除属性时调用ServletRequest
(1)生命周期监听:ServletRequestListener
,它有两个方法,一个是在出生时调用,一个在死亡是调用
(2)属性监听:ServletRequestAttributeListener
,它有三个方法,一个在添加属性时调用,一个在替换属性时调用,一个在移除属性时调用
生命周期监听器举例:这里的例子是ServletContextListener
,因为ServleContext
在服务器开启时创建,在服务器关闭时销毁
package com.jiayifan;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
public class AListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("哈哈,我离开了!!!!");
}
public void contextInitialized(ServletContextEvent sce) {
System.out.println("哈哈,我来了!!!!!");
}
}
在web.xml中配置监听器:
<?xml version=&