【Jsp精品源码栏目提醒】:本文主要为网学会员提供“Servlet事件监听器 - 其它资料”,希望对需要Servlet事件监听器 - 其它资料网友有所帮助,学习一下!
在 Servlet 技术中已经定义了一些事件,并且我们可以针对这些事件来编写相关的事件监听器,从而对事件作出相应处理。
Servlet 事件主要有 3 类:Servlet上下文事件、会话事件与请求事件。
下面具体讲解这 3 类事件的监听器实现。
1.对 Servlet 上下文进行监听可以监听 ServletContext 对象的创建和删除以及属性的添加、删除和修改等操作。
该监听器需要使用到如下两个接口类: ● ServletContextAttributeListener:监听对 ServletContext 属性的操作,如增加、删除、修改操作。
● ServletContextListener:监听 ServletContext,当创建 ServletContext时,激发 contextInitialized ServletContextEvent sce方法;当销毁ServletContext 时,激发 contextDestroyedServletContext- Event sce方法。
2.监听 Http 会话可以监听 Http 会话活动情况、Http 会话中属性设置情况,也可以监听 Http 会话的 active、paasivate 情况等。
该监听器需要使用到如下多个接口类: ● HttpSessionListener:监听 HttpSession 的操作。
当创建一个 Session时,激发 session Created SessionEvent se方法;当销毁一个 Session 时,激发 sessionDestroyed HttpSessionEvent se 方法。
● HttpSessionActivationListener:用于监听 Http 会话 active、passivate情况。
● HttpSessionAttributeListener:监听 HttpSession 中属性的操作。
当在Session 增加一个属性时,激发 attributeAddedHttpSessionBindingEventse 方法;当在 Session 删除一个属性时,激发attributeRemovedHttpSessionBindingEvent se方法;在 Session 属性被重新设置时,激发 attributeReplacedHttpSessionBindingEvent se 方法。
3.对客户端请求进行监听对客户端的请求进行监听是在 Servlet 2.4 规范中新添加的一项技术,使用的接口类如下: ● ServletRequestListener 接口类。
● ServletRequestAttrubuteListener 接口类。
Servlet 上下文监听器实例下面编写一个实例,使它能够对 ServletContext 以及属性进行监听。
由以上介绍可知,该类需要实现 ServletContextAttributeListener 和ServletContextListener 接口类,其详细代码如下:java view plaincopyprint 1.package servlet 2. 3.import java.io.FileOutputStream 4. 5.import java.io.PrintWriter 6. 7.import javax.servlet.ServletContext 8. 9.import javax.servlet.ServletContextAttributeEvent 10. 11. import javax.servlet.ServletContextAttributeListener 12. 13. import javax.servlet.ServletContextEvent 14. 15. import javax.servlet.ServletContextListener 16. 17. public class MyServletContextListener 18. 19. implements ServletContextListenerServletContextAttributeListener 20. 21. private ServletContext context null //定义 一个 ServletContext 对象变量,赋为 null22.23. public void contextInitializedServletContextEvent s 24.25. //TODO 该方法实现了 ServletContextListener 接口定义的方法,对 ServletContext 进行初始化26.27. this.context s.getServletContext //初始化一 个 ServletContext 对象28.29. printServletContext 初始化...... //打印出该 方法的操作信息30.31. 32.33. public void contextDestroyedServletContextEvent s 34.35. //TODO 该方法实现了 ServletContextListener 接口类定义方法,用 于释放 ServletContext 对象36.37. this.context null38.39. printServletContext 被释放......40.41. 42.43. public void attributeAddedServletContextAttributeEvent sa 44.45. //TODO 当上下文添加属性时,将调用该方法。
这里只是将添加的属 性信息打印出来46.47. print增加 ServletContext 对象的一个属性: attributeAddedsa.getName sa.getValue48.49. 50.51. public void attributeRemovedServletContextA