监听器:

  监听器就是对内置对象的状态或者属性变化进行监听,并且做出反应的特殊的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 内置对象的监听器实现在线人数的统计等功能。

Jsp监听器的更多相关文章

  1. jsp 监听器

    Servlet API提供了一系列的事件和事件监听接口. 上层的servlet/JSP应用能够通过调用这些API进行事件 驱动的开发.这里监听的所有事件都继承自 java.util.Event对象.监 ...

  2. [Java] JSP笔记 - Listener 监听器

    Java Web 开发时,可以使用 Listener 来监听来监听一些事件,从而实现一些功能.实际上这个监听器,原理就是 Delphi 中大家常用的各种事件. 1. 那么,监听器的主要用途用哪些呢: ...

  3. JSP的Servlet监听器

    JSP的Servlet监听器 来源: http://blog.csdn.net/phoenix_17th/article/details/3868670 Servlet 监听器用于监听一些重要事件的发 ...

  4. 【JSP&Servlet学习笔记】5.Servlet进阶AIP、过滤器与监听器

    Servlet接口上,与生命周期及请求服务相关的三个方法是init().service()与destory()方法.当Web容器加载Servlet类并实例化之后,会生成ServletConfig对象并 ...

  5. 使用监听器解决路径问题,例如在jsp页面引入js,css的web应用路径

    使用监听器解决路径问题,例如在jsp页面引入js,css的web应用路径 经常地,我们要在jsp等页面引入像js,css这样的文件,但是在服务器来访问的时候,这时间就有关到相对路径与绝对路径了.像网页 ...

  6. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  7. JSP学习笔记(5)——Servlet、监听器、过滤器、MVC模式介绍

    MVC模式 在讲解Servlet前,先介绍一下MVC模式. M:model 模型,相当于数据层,用于存放数据,如一个Java中的一个bean类 V:view 视图,相当于页面层,用于显示数据,如一个网 ...

  8. .jsp文件的使用和理解以及一些小练习和Listener监听器

    什么是 jsp,它有什么用? jsp 的全换是 java server pages.Java 的服务器页面.jsp 的主要作用是代替 Servlet 程序回传 html 页面的数据.因为 Servle ...

  9. 使用Servlet和JSP实现一个简单的Web聊天室系统

    1 问题描述                                                利用Java EE相关技术实现一个简单的Web聊天室系统,具体要求如下. (1)编写一个登录 ...

随机推荐

  1. chrome谷歌开发者工具(hover时候的css样式怎么在浏览器调试)

    很多小伙伴在开发的时候,大多是在用谷歌开发者工具调试代码(快捷键F12 或 Ctrl-Shift-i). 可能会经常遇到需要调试hover样式的时候,一般都是直接改代码,然后在页面上刷新查看效果. 其 ...

  2. 查看网卡及对应的IP、MAC

    #!/bin/bash# judge OS OS_release=`cat /etc/redhat-release | awk '{print $(NF-1)}'|cut -c 1`# To obta ...

  3. 浏览器F12 waterfall性能检测详解详解

    Queueing 是排队的意思 Stalled 是阻塞  请求访问该URL的主机是有并发和连接数限制的,必须要等之前的执行才能执行之后的,这段时间的耗时 DNS Lookup 是指域名解析所耗时间 I ...

  4. python接口自动化(九)--python中字典和json的区别(详解)

    简介 这篇文章的由来是由于上一篇发送post请求的接口时候,参数传字典(dict)和json的缘故,因为python中,json和dict非常类似,都是key-value的形式,为啥还要这么传参,在群 ...

  5. python验证码简单识别

    因为需求,所以接触了验证码这一块,原本感觉到会很难,学了之后挺简单的,但后来又发现自己还是too young... PIL(python Image Library) 目前PIL的官方最新版本为1.1 ...

  6. spring boot 集成 zookeeper 搭建微服务架构

    PRC原理 RPC 远程过程调用(Remote Procedure Call) 一般用来实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地系统资源一样,通过网络传输去访问远程系统资源,R ...

  7. SpringBoot + Spring Security 学习笔记(二)安全认证流程源码详解

    用户认证流程 UsernamePasswordAuthenticationFilter 我们直接来看UsernamePasswordAuthenticationFilter类, public clas ...

  8. Django学习笔记(2)——模型,后台管理和视图的学习

    一:Web投票示例 本节我们首先从全局范围再复习一下Django的概念,让自己对Django的设计理念, 功能模块,体系架构,基本用法有初步的印象. Django初始的详细博客内容:请点击我 该应用包 ...

  9. [Linux] deepin与nginx

    deepin Linux Deepin 是一个基于 DEB 包管理的一个独立操作系统,和那些 Ubuntu(下个大版本是基于debian开发) 的衍生版仅仅只是换主题.调整ISO预置的软件包不同.Li ...

  10. mybatis bug之org.apache.ibatis.exceptions.PersistenceException:

    详细报错信息: org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java. ...