zoukankan      html  css  js  c++  java
  • Listener监听器已经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

  • 相关阅读:
    编码以及⼩知识点补充
    基本数据类型(dict)
    基本数据类型(list,tuple)
    python基础
    Eclipse使用技巧
    条件与(&&)和逻辑与(&)以及条件或(||)和逻辑或(|)区别
    到底怎么样才叫看书?——Tony Zhao's
    Jsp servlet 值传递。。
    (06)odoo报表
    (05)odoo数据库和业务操作
  • 原文地址:https://www.cnblogs.com/jia-/p/7442899.html
Copyright © 2011-2022 走看看