监听器 Listener

来源:互联网 发布:数据挖掘实战 pdf 编辑:程序博客网 时间:2024/06/06 00:47

监听器概念

监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。监听器典型案例:掩耳盗铃被监听对象(事件源-盗铃的人)  监听器对象(铃铛)  事件对象(发现盗铃就弄死他)

自己定义一个监听器原理分析

  • 需求 定义一个person,监听person的状态

  • 步骤

    • 第一步: 定义一个接口,生命要监听的方法

    • 第二步:在类中调用监听器方法

    • 第三步: 设置监听,监听动作

书写监听器的基本步骤

    1.写类  (实现相应Listener接口)    2.配置web.xml     <listener><listener-class>包名.类名</   listener-class></listener>

Servlet监听器 8个监听

关于生命周期的监听

  • ServletContextListener

    ServletContextListener接口用于监听ServletContext对象的创建和销毁事件。当ServletContext对象被创建时,激发contextInitialized(sc)方法当ServletContext对象被销毁时,激发contextDestroyed(sc)方法创建:服务器启动针对每一个Web应用创建ServletContext销毁:服务器关闭前先关闭代表每一个Web应用的ServletContext对象 
  • HttpSessionListener

    HttpSessionListener接口用于监听HttpSession的创建和销毁创建一个Session时,sessionCreated(HttpSessionEvent se)方法将会被调用销毁一个Session时,sessionDestroyed(HttpSessionEvent se)方法将会被调用。用户每一次访问时,服务器创建session销毁:如果用户的session 30分钟没有使用,服务器就会销毁session,我们在web.xml里面也可以配置session失效时间
  • ServletRequestListener

    接口用于监听ServletRequest对象的创建和销毁Request对象被创建时,监听器的requestInitialized方法将会被调用Request对象被销毁时,监听器的requestDestroyed方法将会被调用创建:用户每一次访问,都会创建一个request销毁:当前访问结束,request对象就会销毁

关于属性的监听

  • ServletContextAttributeListener
  • HttpSessionAttributeListener
  • ServletRequestAttributeListener

    这三个接口中都定义了三个方法来处理被监听对象中的属性的增加,删除和替换的事件,同一个事件在这三个接口中对应的方法名称完全相同,只是接受的参数类型不同。

不需要在web.xml配置的监听

  • HttpSessionBindingListener

    保存在Session域中的对象可以有多种状态:绑定到Session中;从Session域中解除绑定;随Session对象持久化到一个存储设备中;随Session对象从一个存储设备中恢复实现了HttpSessionBindingListener接口的JavaBean对象可以感知自己被绑定到Session中和从Session中删除的事件当对象被绑定到HttpSession对象中时,web服务器调用该对象的void valueBound(HttpSessionBindingEvent event)方法当对象从HttpSession对象中解除绑定时,web服务器调用该对象的void valueUnbound(HttpSessionBindingEvent event)方法
  • HttpSessionActivationListener

    实现了HttpSessionActivationListener接口的JavaBean(需要序列化)对象可以      感知自己被活化和钝化的事件当往磁盘序列化时钝化活化:从磁盘中读取出来时活化

有什么用?

统计在线人数登陆(踢人)