【3月17日】Java 监听器
来源:互联网 发布:npm 安装淘宝镜像 编辑:程序博客网 时间:2024/05/29 18:53
1. 认识监听器(Listener)
监听器实际是实现了特定接口的类,这个类在web.xml中进行描述。服务器启动时,这个类可以监听一些关键事件的发生,如ServletContext的初始化和撤销、使用初始化参数查找名建立数据库连接、吧数据库连接存储为一个属性,使得web应用的各个部分可以访问等。
2. 监听器分类及用途
接口
监听内容
ServletContextListener
监听ServletContext对象的初始化和撤销
ServletContextAttributeListener
监听对ServletContext属性的操作,比如增加、删除、修改
HttpSessionListener
监听Session对象
HttpSessionActivationListener
监听HTTP会话的active和passivate情况,passivate是指非活动的session被写入持久设备(比如硬盘),active相反。
HttpSessionAttributeListener
监听Session中的属性操作
ServletRequestListener
监听Request对象
ServletRequestAttributeListener
监听Requset中的属性操作
3. DIY一个监听器
教程来源《Head first Servlet and JSP》,不得不说这是一本令人上瘾的书。第一次正式阅读Haed first系列,只能说这波不亏!
首先,创建一个实力对象Dog
package com.example;public class Dog {private String breed;//构造函数public Dog(String breed) {super();this.breed = breed;}public String getBreed() {return breed;}public void setBreed(String breed) {this.breed = breed;}}然后,创建自己的监听器,需要实现ServletContextListener接口,用户监听ServletContext对象的创建以及撤销操作
package com.example;import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class MyServletContextListener implements ServletContextListener {@Overridepublic void contextDestroyed(ServletContextEvent arg0) {// TODO Auto-generated method stub}@Overridepublic void contextInitialized(ServletContextEvent event) {// TODO Auto-generated method stub//由事件得到ServletContextServletContext sc = event.getServletContext();//使用上下文得到初始化参数String dogBreed = sc.getInitParameter("breed");//new一个Dog出来Dog d = new Dog(dogBreed);//使用上下文设置属性sc.setAttribute("dog", d);}}
建立测试类
package com.example;import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class MyServletContextListener implements ServletContextListener {@Overridepublic void contextDestroyed(ServletContextEvent arg0) {// TODO Auto-generated method stub}@Overridepublic void contextInitialized(ServletContextEvent event) {// TODO Auto-generated method stub//由事件得到ServletContextServletContext sc = event.getServletContext();//使用上下文得到初始化参数String dogBreed = sc.getInitParameter("breed");//new一个Dog出来Dog d = new Dog(dogBreed);//使用上下文设置属性sc.setAttribute("dog", d);}}
部署web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <!-- 配置servlet --> <servlet> <servlet-name>ListenerTester</servlet-name> <servlet-class>com.example.ListenerTester</servlet-class> </servlet> <!-- 配置servlet映射 --> <servlet-mapping> <servlet-name>ListenerTester</servlet-name> <url-pattern>/ListenerTest.do</url-pattern> </servlet-mapping> <!-- 配置上下文初始化参数 --> <context-param> <param-name>breed</param-name> <param-value>Great Dane</param-value> </context-param> <!-- 配置监听器 --> <listener> <listener-class>com.example.MyServletListener</listener-class> </listener></web-app>
0 0
- 【3月17日】Java 监听器
- 3月17日
- 3月17日
- 3月17日会议记录
- 3月17日题目
- java基础 7月17日
- java面试题(9月17日)
- 2010年3月6日Java
- 2010年3月8日Java
- 2010年3月9日Java
- 2010年3月10日Java
- 2010年3月10日Java
- 2010年3月14日Java
- 3月29日开始学Java
- 3月17日,接着昨天的
- 2009年3月17日星期二
- 2010年3月17日星期三
- 2012年3月17日
- iOS 静态库SDK制作过程嵌套第三方静态库
- Gradle开启daemon特性
- maven 配置文件详解
- GCC C语言处理主要函数之c_common_init_ts
- FFmpeg实时采集麦克风延迟
- 【3月17日】Java 监听器
- 网站服务器架设
- 机器学习之K-近邻算法代码实现
- Linux入门
- 使用广播接受者BroadcastReceiver监测网络变化
- GOLDENGATE同步单表配置方案
- url-pattern配置为"/"和"/*"的区别
- HTTP 常见面试题总结
- MySQL存储过程详解