需求 定义一个person,监听person的状态
步骤
第一步: 定义一个接口,生命要监听的方法
第二步:在类中调用监听器方法
第三步: 设置监听,监听动作
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对象就会销毁ServletRequestAttributeListener
这三个接口中都定义了三个方法来处理被监听对象中的属性的增加, 删除和替换的事件,同一个事件在这三个接口中对应的方法名称完全相同, 只是接受的参数类型不同。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(需要序列化)对象可以 感知自己被活化和钝化的事件 当往磁盘序列化时钝化 活化:从磁盘中读取出来时活化