Listener监听器以及小案例

Listener监听器


对某些事件敏感的对象,当事件发生时,调用对象的某个方法,此对象就是监听器.
javaWeb中的监听器,主要坚挺WEB服务器中发生的一些事情.(请求的创建与销毁  session的创建与销毁
域中数据的变化等.)


如何发开一个监听器
创建一个类,实现对应的监听器接口
在web.xml中配置注册此监听器
监听器的生命周期:和过滤器一样
javaWeb中有那些监听器

ServletRequestListener:监听请求(创建与销毁)


ServletRequestAttributeListener:监听请求域(数据的变化:添加 删除 替换)


HttpSessionListener:监听session的创建与销毁
创建:
如果访问的是静态资源,则不会创建session
如果访问的是JSP,则会创建session
如果访问的是servlet,如果是用到session则会创建,如果没有用到,则不会创建
规律:用到session才会创建.(JSP有Session内置对象,所以一定会创建)
销毁:
默认是30分钟后过期自动销毁.
正常关闭服务器不会销毁session,会被写入磁盘,下次启动是再回复到内存
设置web.xml中根标签下的<session-config>的标签,其中的子标签:<session-timeout>
设置过期时间(单位是分钟,默认是30)


HttpSessionAttributeListener:监听session域的数据变化


HttpSessionBindingListener:监听特定的javaBean域session的绑定与解绑事件
程序员自己开发的一个类,让他来实现监听器接口,这样绑定域解绑的这个监听器就
只对这个类的对象进行监听
不需要在web.xml中配置
绑定:把对像保存到session
解绑:把对象从session移除


HttpSessionActivationListener:监听特定的javaBean钝化和活化事件
钝化:特定的javaBean随session一起从内存写入磁盘的事件
活化:特定的javaBean随SESSSIONS.ser文件一起从磁盘恢复到内存的事件
注意:当前javaBean需要被写入磁盘,所以此javaBean还必须实现序列化接口(java.io.serializable)


SerlvetContextListener:监听web项目的启动与停止
项目启动时的资源申请和任务开启
项目停止时的资源释放


SerlvetContextAttributeListener:SerlvetContext域的数据变化



定时发送生日祝福邮件的案例:


需求分析:给当天过生日的用户发送生日祝福邮件
技术分析:
能从数据库中去出当天过生日的用户的信息
SELECT * FROM 表明 WHERE 字段名 LIKE '  ____-07-09%   ';


定时任务,以固定的事件周期运行,查找用户,发送邮件,以固定的事件周期,每隔指定的事件长度,运行一段代码.


发送邮件:MailUtils
SMTP:simple Mail Transfer Protocol:简单邮件传输协议:发送邮件
默认使用25端口
POP3:Post Office Protocol3:邮局协议第三版:收邮件
默认使用110端口
邮件服务器:
点" 设置 " ---> " 局域网邮件服务器 "
"  单域名 " ---> "  itcats.com  "( 设置本邮件服务器的域名 )


点" 新账号 "
账号:
密码:
邮件客户端工具: FoxMail
步骤分析:
创建一个定时任务,每隔24小时运行一次
调用业务逻辑,进行生日祝福邮件发送的操作
业务逻辑中,调用Dao从数据库中取得今天生日的拥挤的集合
业务逻辑中,遍历集合,给每个用户的邮箱发送邮件
当服务器启动时,同时启动定时任务(监听项目启动事件)


定时器:
第一步:创建定时器    new Timer()
第二步:调用schedule(task, delay, period)方法
参数: task : 第一个参数,创建一个TimerTask对象,因为TimerTask是抽象类,所以可以使用匿名内部类的方式实现
delay:运行此语句后,延迟多少秒开始运行
period:延迟时间后,开始运行定时任务,每隔多少秒开始运行











总结:  监听器  Listener


servletRequestLitener:监听那些资源被访问(WEB项目的访问记录)


servletRequestAttributeListener:  added/replaced/removed


HttpSessionListener( 粗粒度的监听用户的上线和下线 )
创建和在在访问的目标用到session才会创建session(HTML一定不会,JSP一定会一定会,Servlet看情况)
销毁:过期<session-config><session-timeout>(单位是分钟)

HttpSessionAttributeLikstener
HttpSessionBindingListener:特定的javaBean和sesion绑定域解绑事件


HttpSessionActivationListener:特定的javaBean钝化与活化事情(必须同时序列化接口)
ServletContextListener:WEB项目的启动与停止
项目启动时申请资源
项目停止时释放资源
项目启动时启动任务*

ServletContextAttriduteListener
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值