2011年计算机二级考试JAVA知识点整理(71)

文章作者 100test 发表时间 2011:04:13 19:52:26
来源 100Test.Com百考试题网


  2.7 Servlet中的Listener的应用

  由于工作需要,最近在找一些解决方案,发现Listener是一个很好的东西,

  能够监听到session,application的create,destroy,可以监听到session,application

  属性绑定的变化,考虑了一下,可以应用在"在线人数统计","数据缓存"等各个方面,

  下面是整理的一些资料.

  Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时,就激发sessionCreated(HttpSessionEvent se)方法,这样就可以给在线人数加1。常用的监听接口有以下几个:

  ServletContextAttributeListener监听对ServletContext属性的操作,比如增加、删除、修改属性。

  ServletContextListener监听ServletContext。当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法.当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。

  HttpSessionListener监听HttpSession的操作。当创建一个Session时,激发session Created(HttpSessionEvent se)方法.当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。

  HttpSessionAttributeListener监听HttpSession中的属性的操作。当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se) 方法.当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法.当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。

  下面我们开发一个具体的例子,这个监听器能够统计在线的人数。在ServletContext初始化和销毁时,在服务器控制台打印对应的信息。当ServletContext里的属性增加、改变、删除时,在服务器控制台打印对应的信息。

  要获得以上的功能,监听器必须实现以下3个接口:

  HttpSessionListener

  ServletContextListener

  ServletContextAttributeListener

  我们看具体的代码,见示例14-9。

  【程序源代码】

  1 // ==================== Program Discription =====================

  2 // 程序名称:示例14-9 : EncodingFilter .java

  3 // 程序目的:学习使用监听器

  4 // ==============================================================

  5 import javax.servlet.http.*.

  6 import javax.servlet.*.

  7

  8 public class OnLineCountListener implements HttpSessionListener,

  ServletContextListener,ServletContextAttributeListener

  9 {

  10 private int count.

  11 private ServletContext context = null.

  12

  13 public OnLineCountListener()

  14 {

  15 count=0.

  16 //setContext().

  17 }

  18 //创建一个session时激发

  19 public void sessionCreated(HttpSessionEvent se)

  20 {

  21 count .

  22 setContext(se).

  23

  24 }

  25 //当一个session失效时激发



相关文章


辽宁2011年3月全国计算机等级考试成绩查询时间和方式
海南2011年3月全国计算机等级考试成绩查询时间和方式
广西2011年3月全国计算机等级考试成绩查询时间和方式
2011年计算机二级考试JAVA知识点整理(72)
2011年计算机二级考试JAVA知识点整理(71)
2011年计算机二级考试JAVA知识点整理(70)
2011年计算机二级考试JAVA知识点整理(69)
2011年计算机二级考试JAVA知识点整理(68)
2011年计算机二级考试JAVA知识点整理(67)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛