监听器Listener

  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 可以看看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值