设为首页 加入收藏

TOP

2011年计算机二级考试JAVA知识点整理(71)
2014-11-01 22:30:07 】 浏览:214
Tags:2011年 计算机 二级 考试 JAVA 知识点 整理

  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年计算机二级考试JAVA知识点.. 下一篇2011年计算机二级考试JAVA知识点..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目