Listener(监听器)

发布时间 2023-05-26 18:51:05作者: 宁宝儿


概念:
监听器其实就是一个实现特定接口的普通java程序,
这个程序专门用于监听另一个java对象的方法调用或属性改变,
当被监听对象发生上述事件后,监听器某个方法立即被执行。


作用:监听javaweb的三个对象,
ServletContext,
ServletRequest,
HttpSession

编写步骤
1.编写一个类
实现监听器接口
重写方法
2.编写配置文件(大部分需要)
注册listener


监听器的分类
监听三个对象的创建和销毁
1.ServletContextListener
创建 服务器启动的时候 会为每一个项目创建一个
销毁 项目移除的的时候,或者服务器关闭的时候

2.ServletRequestListener
创建 请求来的时候
销毁 生成响应的时候

3.HttpSessionListener
创建
java中,认为第一次调用request.getSession()
jsp中,认为第一次访问jsp页面的时候
销毁
1.服务器非正常关闭
2.超时
3.手动销毁

4.ServletContextAttributeListener
5.ServletRequestAttributeListener
6.HttpSessionAttributeListener

监听javabean在session中的状态变化
HttpSessionBindingListener(解绑和绑定)
绑定:javabean放入了session(HttpSession)
解绑:javabean从session移除了

HttpSessionActivationListener(钝化和活化)
钝化:session中的javabean,序列化到磁盘上
活化:javabean从磁盘中又回到了session中
只需要javabean实现接口即可,不需要配置文件,但是需要实现序列化接口

定时器:(任务调度)
概念:
调用线程执行任务。可安排任务执行一次,或者定期重复执行。
创建:
new Timer()
常用方法
void schedule(TimerTask task, Date firstTime, long period)
:指定一个开始时间,间隔指定时间再次执行任务

void schedule(TimerTask task, long delay, long period):
延迟一段时间,间隔指定时间再次执行任务


Calendar:(日历对象)
获取对象
static getInstance()

常用方法
setTime(Date date):与当前的时间同步
set(int field,int value):设置
getTime():返回日历的data对象