原标题:IT兄弟连 JavaWeb教程 监听器1

1 基本概念

监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行。

JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext,HttpSession和ServletRequest等域对象的创建于销毁时间,以及监听这些域对象中的属性发生修改的事件。

2 Servlet监听器的分类

在Servlet规范中定义了多种类型的监听器,它们用于监听的事件源分别为ServletletContext、HttpSession和ServletRequest这三个域对象。

Servlet规范针对这三个对象上的操作,又把多种类型的监听器划分为三种类型:

● 监听域对象自身的创建和销毁的事件监听器。

● 监听域对象中的属性的增加和删除的事件监听器。

● 监听绑定到HttpSession域中的某个对象的状态的事件监听器。

3 监听ServletContext域对象的创建和销毁

ServletContextListener接口用于监听ServletContext对象的创建和销毁事件。实现了ServletContextListener接口的类都可以对ServletContext对象的创建和销毁进行监听。

当ServletContext对象被创建时,激发contextInitialized(ServletContextEvent event)方法。

当ServletContext对象被销毁时,激发contextDestoryed(ServletContextEvent event)方法。

ServletContext域对象创建和销毁时机:

创建:服务器启动针对每一个Web应用创建ServletContext。

销毁:服务器关闭前先关闭代表每一个Web应用的ServletContext。

范例:编写一个MyServletContextListener类,实现ServletContextListener接口,监听ServletContext对象的创建和销毁。

● 编写监听器,代码如下:

package com.xdl.listener;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

/**

* MyServletContextListener类实现了ServletContextListener接口

* 因此可以对ServletContext对象的创建和销毁这两个动作进行监听

*/

public class MyServletContextListener implements ServletContextListener{

@Override

public void contextDestroyed(ServletContextEvent sce) {

System.out.println("ServletContext对象创建");

}

@Override

public void contextInitialized(ServletContextEvent sce) {

System.out.println("ServletContext对象销毁");

}

}

● 在web.xml文件中注册监听器

● 我们在上面中讲到,要想监听事件源,那么必须将监听器注册到事件源上才能够实现对事件源的行为动作进行监听,在JavaWeb中,监听的注册时在web.xml文件中进行配置的。详细配置如下:

xmlns="http://xmlns.jcp.org/xml/ns/javaee"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"

version="3.1">

ServletContextListener监听器

com.xdl.listener.MyServletContextListener

经过这两个步骤,我们就完成了监听器的编写和注册,Web服务器在启动时,就会自动把在web.xml文件中配置的监听器注册到ServletContext对象上,这样开发好的MyServletContextListener监听器就可以对ServletContext对象进行监听了。返回搜狐,查看更多

责任编辑:

java编写监听器步骤_IT兄弟连 JavaWeb教程 监听器1相关推荐

  1. java web 请求跟踪_IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie技术

    原标题:IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie技术 Cookie使用HTTPHeader传递数据.Cookie机制定义了两种报头,Set-Cookie报头和Cookie报 ...

  2. IT兄弟连 JavaWeb教程 监听器3

    2019独角兽企业重金招聘Python工程师标准>>> 监听域对象中属性变更的监听器 域对象中属性的变更的事件监听器就是用来监听ServletContext.HttpSession. ...

  3. java程序步骤_java编写程序的步骤是什么?java编写程序步骤实例讲解

    写java编程就是一步一步的来,这样才会写好一个编程,之后也才能正常的运行,那么java编写程序的步骤是什么?今天我们就来给大家讲解一下这方面的内容.大家可以参考以下文章! 1.编写源文件 使用文本编 ...

  4. java洗扑克牌算法分析_IT兄弟连 Java语法教程 综合案例

    大家好!下面为您带来精彩资讯! 1.案例需求 编写程序,模拟斗地主游戏洗牌和发牌的流程. 2.应用知识 ● 数组的声明 ● 数组的遍历 ● for循环 ● if-else分支结构 3.需求解析 模拟斗 ...

  5. IT兄弟连 JavaWeb教程 MVC设计模式

    MVC是Model-View-Controller的简称,即模型-视图-控制器.MVC是一种设计模式,它强制性地把应用程序的数据展示.数据处理和流程控制分开.MVC把应用程序分成3个核心模块:模型.视 ...

  6. IT兄弟连 JavaWeb教程 文件下载技术

    ●  列出提供下载的文件资源 我们要将Web应用系统中的文件资源提供给用户进行下载,首先我们要有一个页面列出上传文件目录下的所有文件,当用户点击文件下载超链接时就进行下载操作,编写一个ListFile ...

  7. IT兄弟连 JavaWeb教程 jQuery对AJAX的支持经典案例

    案例需求:编写用户登陆页面的验证码模块,在用户进行登陆时,输入验证码后不需要点击提交按钮,使用AJAX异步地向服务器发送验证验证码的请求.如果验证码正确,可以点击提交按钮,如果验证码输入错误,提示用户 ...

  8. IT兄弟连 JavaWeb教程 使用Servlet实现在页面中显示随机数

    在com.xdl.servlet包下定义RandomServlet类并HttpServlet类,在该类中生成随机数并发送给客户端.RandomServlet类详细代码如下: package com.x ...

  9. css 如何 重设 外部样式的属性值_IT兄弟连 HTML5教程 CSS3揭秘 CSS常见的样式属性和值5...

    CSS综合实例 在Web页面中经常使用栏目显示分类内容.本例将使用HTML和CSS结合编写一个分类栏目模型,用于演示前面介绍的CSS应用.通过使用独立的文件定义样式表,并在HTML文档中使用link标 ...

  10. IT兄弟连 JavaWeb教程 JSON和JSON字符串

    2019独角兽企业重金招聘Python工程师标准>>> JSON (JavaScript Object Notation)是JavaScript语言中的一种对象类型.JSON的好处是 ...

最新文章

  1. 几种经典的网络服务器架构模型的分析与比较
  2. nginx反向代理tomcat
  3. python 输入参数获取_python获取输入参数
  4. Mac安装mysql数据库【亲测有用】
  5. 上采样和下采样_OpenCV学习笔记(一)之图像金字塔-上采样与降采样与DOG
  6. 了解HTML CSS格式化排版 文字排版
  7. python统计图的三层结构设计代码_【Python数据可视化】用Matplotlib绘制常见统计图,中文显示字体任意设置...
  8. JavaScript中的[]和{}
  9. 8. 求 s=a+aa+aaa+aaaa+aa…a 的值
  10. python转义字符\r的使用
  11. 3D沙盒游戏开发日志4——网格寻路系统
  12. Spring.NET学习笔记18——整合NHibernate(基础篇) Level 300
  13. Linux中shell编程——编写shell脚本,实现功能:在用户输入年、月后自动打印出对应年月的日
  14. LOB类型的学习、总结
  15. 大数据技术有哪些 应该重点学哪些知识
  16. Oracle Form 之 Compute Data
  17. 一个大尺度超文本网络搜索引擎的剖析
  18. [免费专栏] Android安全之Android奇淫run-as命令,调用系统受UID限制的API
  19. 为什么边缘计算会这么受欢迎
  20. 开放式激光振镜+运动控制器(二):振镜填充

热门文章

  1. 在IIS6 配置使用php5.4的fastcgi模式
  2. C#等 句柄是什么?
  3. 查看zynq 的 id 或者DNA
  4. 平稳与非平稳序列的拟合及预测
  5. c语言如何用气泡法编程最大 最小值,[c语言冒泡排序法]C语言冒泡排序法详解
  6. 数据中心用蒸发冷却(凝)空调机组的设计及试验分析
  7. 易买网商城管理系统MySQL+JSP
  8. 方舟官方服务器怎么显示血量,方舟端游怎么显示血量
  9. 游戏帐号被盗,但是杀毒软件没有发现病毒?DNS挟持盗号原理剖析
  10. 离子交换树脂工艺解决电脑印刷线路板废水镍超标