Java EE基础知识学习(七)
来源:互联网 发布:有数据分析软件吗 编辑:程序博客网 时间:2024/04/27 05:25
当Web应用在Web容器中运行时,Web应用内部会不断发生各种事件:如Web应用被启动、Web应用被停止、用户Session开始、用户Session结束、用户请求到达等,通常来说这些Web事件对于开发者是透明的。Servlet API提供了大量的监听器来监听Web应用的内部事件,从而允许当Web内部事件发生时回调事件监听器内的方法。这些监听器就是我们这一节要介绍的Listener。
Listener
实现Listener的步骤:
我们在使用Listener的过程中,只需要两个步骤:
- 定义Listener实现类。
- 通过注解或者在web.xml文件中配置Listener。
常用的Web事件监听器:
- ServletContextListener:用于监听Web应用的启动和关闭。
- ServletContextAttributeListener:用于监听ServletContext范围(application)内属性的改变。
- ServletRequestListener:用于监听用户请求。
- ServletRequestAttributeListener:用于监听ServletRequest范围(request)内属性的改变。
- HttpSessionListener:用于监听用户Session的开始和结束。
- HttpSessionAttributeListener:用于监听HttpSession范围(session)内属性的改变。
Listener配置:
配置Listener只要向Web应用注册Listener实现类就可以了,无需配置参数之类的东西,所以配置过程非常简单,并且它的配置和Servlet一样,有两种配置的方式:
- 使用@WebListener修饰Listener实现类即可。
- 在web.xml文档中使用
<listener> <listener-class>com.example.TestListener</listener-class></listener>
Listener使用举例:
在这里我们使用ServletContextListener来实例使用Listener,在使用的时候我们只需要在我们的类中实现ServletContextListener接口,然后将我们要做的工作写在相应的方法中就可以了,代码如下:
package com.example;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import javax.servlet.annotation.WebListener;/** * Application Lifecycle Listener implementation class TestListener * */@WebListenerpublic class TestListener implements ServletContextListener { /** * Default constructor. */ public TestListener() { // TODO Auto-generated constructor stub } /** * @see ServletContextListener#contextDestroyed(ServletContextEvent) */ public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub System.out.println("Web应用启动"); } /** * @see ServletContextListener#contextInitialized(ServletContextEvent) */ public void contextInitialized(ServletContextEvent arg0) { // TODO Auto-generated method stub System.out.println("Web应用关闭"); }}
在上面的代码中,我们在contextInitialized方法中输出了“Web应用启动”,在contextDestroyed方法中输出了“Web应用关闭”,这样当Web应用启动的时候,我们可以在控制台中看到“Web应用启动”的字段,而在Web应用关闭的时候看到“Web应用关闭”的字段,这样说明我们的Listener已经成功监听到了Web应用的启动和关闭,而我们也可以在这里让监听器做更多的工作,例如可以在Web应用启动的时候连接数据库并且获取到数据库的连接,然后在Web应用关闭的时候断开数据库的连接。
其他的Web Listener类就不在一一举例,它们的使用都和上述例子中的使用类似,只是不同的Listener实现类中方法也不同,我们在使用这些Listener类的时候要注意识别每个方法是在什么时候被调用的。
- Java EE基础知识学习(七)
- Java EE基础知识学习(一)
- Java EE基础知识学习(二)
- Java EE基础知识学习(三)
- Java EE基础知识学习(四)
- Java EE基础知识学习(五)
- Java EE 基础知识学习(六)
- Java EE 学习(9) 正则表达式 之(一)基础知识
- Java基础知识(七)
- Java基础知识(七)
- java基础知识(七)
- Java EE知识储备(七)
- 七 Java EE
- java EE基础知识
- Java EE基础知识1
- Java EE基础知识2
- Java EE 基础知识
- Java EE学习之(七)JSP的九个内置对象
- 二叉树的前中后序遍历,递归和非递归方式
- JSP的开发学
- 2017.04.10:python数据可视化01
- 关于Service,有一篇文章讲的不错
- 欢迎使用CSDN-markdown编辑器
- Java EE基础知识学习(七)
- 简单购物车
- 第一讲 Android 屏幕适配基本概念
- photoshop打开图片没反应问题的解决以及改变图片尺寸
- bzoj 3275: Number 最小割
- 数据结构与算法(c++)--prim算法
- LeetCode 148. Sort List
- golang学习笔记之yaml文件处理
- 感觉非常棒的ssm框架搭建