监听器Listener

来源:互联网 发布:淘宝被骗怎么办? 编辑:程序博客网 时间:2024/06/06 06:40
  1. 主要监听常见的域对象: HttpServletRequest, HttpSession ,ServletContext
  2. 监听以上对象的创建和销毁: 必须在web.xml中注册监听器
  3. HttpServletRequest:浏览器一次请求开始就创建request对象,请求结束销毁request对象
  4. HttpSession: getSession()没有就创建,有就直接使用,session销毁:invalidate()
  5. ServletContext:程序被放到tomcat服务器容器中,ServletContext就创建, 程序从tomcat服务器中移除或者关闭服务器,ServletContext销毁了
  6. 案例:
    6.1定时销毁session;
    计时器对象Timer
    TimerTask: 计时器任务
    计时器对象执行计时器任务(每隔5s去遍历检测所有的session,如果session存活时间超过了5s就销毁)
    6.2 HttpSessionListener: 监听到创建把Session存储到ServletContext中。list
    6.3ServletContextListener: 监听到ServletContext的创建
    每隔5s去遍历检测所有的session,如果session存活时间超过了5s就销毁
  7. 备注:   事件: 动作一件事情   ServletContextEvent        事件源:产生事件的对象 ServletContext          监听器:用于监听的对象  ServletContextListener        注册监听器:要让监听器监听到事件,必须要注册   web.xml            定时销毁session: 案例的重要点        a.从ServletContext中获取list对象,直接给list添加内容,但是并没有重新再次setAttribute();                  java存储结构:  堆,栈,方法区,常量池。。。。。             b.java计时器 Timer  TimerTask: 线程        c. list移除的时候list大小在变化,再次操作list会异常。 为了解决使用list迭代器
  8. 监听以上对象的属性变化: 必须在web.xml中注册监听器
    ServletRequestAttributeListener
    HttpSessionAttributeListener
    ServletContextAttributeListener
    共同的方法:
    8.1 attributeAdded
    8.2 attributeRemoved
    8.3 attributeReplaced

  9. 使用步骤:
    1.创建一个类实现属性监听接口,并实现其中的方法;
    2.在web.xml中注册该监听器

具体代码看整理的<资料>文件夹
另外:http://www.cnblogs.com/w-wfy/p/6425357.html 可以看看

原创粉丝点击