J2EE监听器和J2SE事件处理中监听器一样,用于监视事件动作。
J2EE监听器类别:
请求监听器:
ServletRequestListener、
ServletRequestAttributeListener
HttpSession监听器:
HttpSessionListener、
HttpSessionAttributeListener
Servlet上下文监听器:
ServletContextListener、
ServletContextAttributeListener
上下文监听器相关方法:
ServletContextListener
方法 | 说明 |
contextInitialized(ServletContextEvent sce) | WEB应用准备处理请求时触发 |
contextDestroyed(ServletContextEvent sce) | 关闭时触发 |
ServletContextAttributeListener
方法 | 说明 |
attributeAdded(ServletContextAttributeEvent scab) | 新增一个属性时触发 |
attributeRemoved(ServletContextAttributeEvent scab) | 删除一个属性时触发 |
attributeReplaced(ServletContextAttributeEvent scab) | 替换属性值时触发 |
HttpSession监听器相关方法:
HttpSessionListener
方法 | 说明 |
sessionCreated(HttpSessionEvent se) | Session创建时触发 |
sessionDestroyed(HttpSessionEvent se) | Session关闭时触发 |
HttpSessionAttributeListener
方法 | 说明 |
attributeAdded(HttpSessionBindingEvent hsbe) | 新增一个属性时触发 |
attributeRemoved(HttpSessionBindingEvent hsbe) | 删除一个属性时触发 |
attributeReplaced(HttpSessionBindingEvent hsbe) | 替换属性值时触发 |
请求监听器相关方法:
ServletRequestListener
方法 | 说明 |
sessionCreated(HttpSessionEvent se) | Session创建时触发 |
sessionDestroyed(HttpSessionEvent se) | Session关闭时触发 |
ServletRequestAttributeListener
方法 | 说明 |
attributeAdded(HttpSessionBindingEvent srae) | 新增一个属性时触发 |
attributeRemoved(HttpSessionBindingEvent srae) | 删除一个属性时触发 |
attributeReplaced(HttpSessionBindingEvent srae) | 替换属性值时触发 |
需要在服务器启动时就加载就必须用上下文监听器
监听器(部署运行)
<listener>
<listener-class>
com.fjdz.listener.InitListener
</listener-class>
</listener>
监听器(开发):实现ServletContextListener的接口
以下是实现服务器启动时从配置文件中读出需要从数据文件要读取的相应数据,并取出数据保存在内存中
package com.fjdz.listener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import com.esri.arcgis.system.AoInitialize;
import com.esri.arcgis.system.EngineInitializer;
import com.esri.arcgis.system.esriLicenseProductCode;
import com.fjdz.getdata.beans.DataBean;
import com.fjdz.getdata.query.QueryFactory;
public class InitListener implements ServletContextListener {
private Element root = null;
private Document doc = null;
public static List<List<DataBean>> list;
public static List<List<DataBean>> getList() {
return list;
}
public static void setList(List<List<DataBean>> list) {
InitListener.list = list;
}
public void contextDestroyed(ServletContextEvent sce) {
}
@SuppressWarnings("unchecked")
public void contextInitialized(ServletContextEvent sce) {
SAXReader reader = new SAXReader();
List<List<DataBean>> datalist = new ArrayList<List<DataBean>>();
try {
doc = reader.read(new File(sce.getServletContext().getRealPath("WEB-INF") + "/xml/datainfo.xml"));//用DOM-4j读取配置文件
root = doc.getRootElement();
List rootList = root.selectNodes("/datas/data");//使用X-Path读取根节点
QueryFactory queryFactory = new QueryFactory();
EngineInitializer.initializeEngine();
AoInitialize aoInitialize = new AoInitialize();
aoInitialize.initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);
for(Object obj : rootList){
List<DataBean> beanlist = new ArrayList<DataBean>();
List<DataBean> blist = new ArrayList<DataBean>();
Element element = (Element)obj;
String dataType = element.attributeValue("datatype");//读取子节点下的属性值
String path = element.attributeValue("path");
List rootList1 = root.selectNodes("/datas/data/trees");
for(Object o : rootList1){
Element element1 = (Element)o;
String className = element1.attributeValue("classname");
String code = element1.attributeValue("code");
String name = element1.attributeValue("name");
beanlist = queryFactory.query(dataType, className, path, code, name,"");//读取数据的方法
datalist.add(beanlist);
}
List rootList2 = root.selectNodes("/datas/data/trees/tree");
for(Object object : rootList2){
Element element2 = (Element)object;
String className = element2.attributeValue("classname");
String code1 = element2.attributeValue("code");
String name1 = element2.attributeValue("name");
String keycode = element2.attributeValue("keycode");
blist = queryFactory.query(dataType, className, path, code1, name1,keycode);
datalist.add(blist);
}
}
aoInitialize.shutdown();
InitListener.setList(datalist);//数据保存在静态变量中存放于内存里
} catch (IOException e) {
e.printStackTrace();
}catch (DocumentException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
关于Servlet监听器的几个例子,用于统计在线人数等等
Listener监听器 JavaBean Servlet Jsp XML HTML JAVA WEB开发技术 Listener监听器 事件监听器用于对程序中发生的事件进行监听,在监听的过程中会涉及几个重要组成部分: 事件(Event) 事件源 事件处理器 事件监听器...
Files contained in javax.servlet.jar:...javax.servlet.ServletContextListener.class META-INF/maven/org.mortbay.jetty/servlet-api-2.5/pom.xml META-INF/maven/org.mortbay.jetty/servlet-api-2.5/pom.properties
ServletContextListener的应用案例 项目启动:创建新的空表, 项目关闭:删除表 百度六祎,期...
通过创建ServletContextListener监听器,socket来实现tcp/ip协议客户端数据的接收功能。这是一个maven项目,直接导入eclipse即可运行,此处监听的是9092端口,将项目运行起后,可以对其端口使用情况进行查看,在...
javax.servlet.ServletContextListener javax.servlet.ServletRequestListener javax.servlet.ServletResponseWrapper javax.servlet.http.HttpServletRequest javax.servlet.http.HttpSessionContext javax.servlet...
监听器也叫Listener,是servlet服务的监听器。它可以监听客户端的请求,服务端的操作等。比如统计在线用户数量。每当增加一个HttpSession时,就会触发sessionCreate(HttpSessionEvent se)方法,这样就可以给在线人数...
ServletContextListener使用详解
contextInitialized(ServletContextEvent) - Method in interface javax.servlet.ServletContextListener Notification that the web application initialization process is starting. Cookie - class javax....
servlet小项目 public class BookListener implements ServletContextListener { public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub } public void context...
主要介绍了Java基于servlet监听器实现在线人数监控功能的方法,结合实例形式分析了ServletContextListener监听功能的相关使用步骤与操作技巧,需要的朋友可以参考下
ServletContextListener ServletException ServletInputStream ServletOutputStream ServletRequest ServletRequestAttributeEvent ServletRequestAttributeListener ServletRequestEvent ...
NULL 博文链接:https://chenhua-1984.iteye.com/blog/374683
JavaWeb新版教程. jsp--ServletContextListener监听器演示.avi
本次工程的目标是学习监听器,掌握监听三个对象的创建和销毁方法。 三个对象:rquest,session,ServletContext 实现的接口:ServletRequestListener,HttpSessionListener,ServletContextListener 工程的大致步骤...
public class MyListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { log.info("web项目的启动{} 一开始就启动",sce.getServletContext...
5)ServletContextListener监听器的主要作用 a、初始化的工作:初始化对象 初始化数据 ---- 加载数据库驱动 连接池的初始 化 b、加载一些初始化的配置文件 --- spring的配置文件 c、任务调度----定时器----Timer/...
ServletContextListener完成在线人数统计和显示人员列表
在SpringMVC中利用ServletContextListener初始化数据到内存