监听器:

  监听器就是对内置对象的状态或者属性变化进行监听,并且做出反应的特殊的servlet,在web.xml文件中对监听器进行的配置。

  内置对象有两种状态变化:产生、销毁,就是当产生内置对象的时候能监听、销毁的时候也能进行监听,

当在内置对象中增加、删除、修改一个属性的时候也能进行监听。

  监听其状态,要实现request 内置对象的状态监听,需要实现一个接口“ServletRequestListener”如下:

public class RequestListener implements ServletRequestListener{

  @Override

  public void requestDestroyed(ServletRequestEvent arg0) {

  System.out.println("销毁 request 内置对象");

  }

 @Override

  public void requestInitialized(ServletRequestEvent arg0) {

  System.out.println("创建 request 内置对象");

  }

}

  要实现requset 对象的属性监听需要实现另外一个接口“ServletRequestAttributeListener”

  总之我们可以使用监听器监听 request 对象的状态变化,使用 request 对象的状态监听器证明了

使用客户端跳转其实上是发送了一个新的请求,另外我们还可以使用监听器监听 request 对象的属性变化。

Session 内置对象的监听器:

  session 内置对象的监听器和可以对 session 的状态和属性变化进行监听。

  1、对 session 的状态监听需要实现的接口是 “java.servlet.http.HttpSessionListener”

  2、对 session 的属性进行监听需要使用到的接口是“java.servlet.http.HttpSessionAttributeListener”

Application 内置对象监听器:

  要对 application 的状态进行监听需要使用的接口是“ServletContextListener”。方法如下:

  public void contextlnitialized(ServetContextEvent sce) {

    初始化方法,在创建 application 内置对象的时候调用该方法

  }

  public void  contextDestroyed(ServletContextEvent sce) {

    销毁的时候调用该方法

  }

  对 application 的属性监听需要使用到的接口是“ServletContextAttributeListener”。方法如下:

  public void attributeAdded(ServletContextAttributeEvent scab) {

  增加属性的时候触发该方法

  }

  public  void attributeRemoved(ServletContextAttributeEvent scab) {

  删除属性的时候触发该方法

  }

  public  void attributeReplaced(ServletContextAttributeEvent scab) {

  替换属性的时候调用该方法

  }

  application 内置对象的监听可以结合 session 内置对象的监听器实现在线人数的统计等功能。

最新文章

  1. php stdclass转数组
  2. 搞ACM的你伤不起[转自RoBa]------(看一次,笑一次)
  3. C++ Singleton模式
  4. 使用asynctask的问题
  5. CF# Educational Codeforces Round 3 B. The Best Gift
  6. CSS深入研究:display的恐怖故事解密(2) - table-cell(转)
  7. iOS - UIActionSheet
  8. VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)
  9. PHP从数据库获取的下拉树
  10. JDK源码 - ArrayList
  11. 初学Python(第二课)
  12. SSH服务端配置、优化加速、安全防护
  13. Pat1128:N Queens Puzzle
  14. [转]Setting Keystone v3 domains
  15. 【Spring】application.xml文件配置
  16. day 17 - 1 递归函数
  17. Kaazing Gateway简单使用
  18. js缓存问题,修改js后代码不生效
  19. C# 抓取网页的img src带参数的图片链接,并下载
  20. v-html的应用

热门文章

  1. 使用 Vue 开发 scrollbar 滚动条组件
  2. IDEA同步上传lua代码,方便开发。
  3. 《深入理解Java虚拟机》-----第3章 垃圾收集器与内存分配策略
  4. 学习ASP.NET Core Razor 编程系列十六——排序
  5. JVM上的响应式流 — Reactor简介
  6. Java基础系列-Stream
  7. IOS多态在项目中的应用
  8. Java多线程小总结
  9. SpringCloud Alibaba-nacos注册中心
  10. Java开发环境的搭建01——Eclipse篇(Windows)