`
lxz891117
  • 浏览: 33280 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ServletContextListener简介

 
阅读更多

在 Servlet API 中有一个 ServletContextListener 接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。当Servlet 容器启动或终止Web 应用时,会触发ServletContextEvent 事件,该事件由ServletContextListener 来处理。

在 ServletContextListener 接口中定义了处理ServletContextEvent 事件的两个方法:

/***当Servlet 容器启动Web 应用时调用该方法。在调用完该方法之后,容器再对Filter 初始化, * 并且对那些在Web 应用启动时就需要被初始化的Servlet 进行初始化。*/

contextInitialized(ServletContextEvent sce)

/***当Servlet 容器终止Web 应用时调用该方法。在调用该方法之前,容器会先销毁所有的Servlet 和Filter 过滤器。 */ contextDestroyed(ServletContextEvent sce)


下面通过两个具体的例子来介绍 ServletContextListener 的用法。

例一:在服务启动时,将数据库中的数据加载进内存,并将其赋值给一个属性名,其它的 Servlet 就可以通过 getAttribute 进行属性值的访问。有如下两个步骤:1 : ServletContext 对象是一个为整个 web 应用提供共享的内存,任何请求都可以访问里面的内容 2 :如何实现在服务启动的时候就动态的加入到里面的内容。

我们需要做的有:

1 ) 实现 servletContextListerner 接口 并将要共享的通过 setAttribute ( name,data )方法提交到内存中去;

2 )应用项目通过 getAttribute(name) 将数据取到 。

public class ServletContextLTest implements ServletContextListener {
// 实现其中的销毁函数
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("this is last destroyeed");
}
// 实现其中的初始化函数,当有事件发生时即触发
public void contextInitialized(ServletContextEvent sce) {
ServletContext sct=sce.getServletContext();
Map<Integer,String> depts=newHashMap<Integer,String>(); Connection connection=null; PreparedStatement
pstm=null; ResultSet rs=null;
try{
connection=ConnectTool.getConnection(); String
sql="select deptNo,dname from dept";
pstm=connection.prepareStatement(sql); rs=pstm.executeQuery();
while(rs.next()){ depts.put(rs.getInt(1), rs.getString(2)); }
// 将所取到的值存放到一个属性键值对中
sct.setAttribute("dept", depts);
System.out.println("======listener test is beginning=========");
}catch(Exception e){
e.printStackTrace();
}finally{
ConnectTool.releasersc(rs, pstm, connection);
}
}
}

在完成上述编码后,仍需在 web.xml 中进行如下配置,以使得该监听器可以起作用。

<listener><listener-class>ServletContextTest.ServletContextLTest</listener-class></listener>   

在完成上述配置后, web 服务器在启动时,会直接加载该监听器,通过以下的应用程序就可以进行数据的访问。

分享到:
评论

相关推荐

    Java listener简介_动力节点Java学院整理

    Java Listener 简介 Java Listener 是一种特殊的类,用于监听 ServletContext、HttpSession、ServletRequest 等域对象的创建、销毁、以及属性的变化等。监听器可以在事件发生前、发生后进行一些处理,例如统计用户...

    Java_Web定时器使用

    #### 一、Java定时器简介 Java定时器(`java.util.Timer`)是Java标准库中的一个实用工具类,它主要用于执行周期性的或一次性计划任务。通过设置定时器的间隔时间,可以在指定的时间间隔后执行预先定义的任务,即`...

    java comet服务器推送使用步骤

    #### 二、Comet4J简介 Comet4J是一个基于Java的轻量级Comet框架,它能够帮助开发者轻松地实现实时数据推送功能。Comet4J支持多种服务器环境,并且提供了丰富的API接口供开发者调用。通过使用Comet4J,开发者可以专注...

    框架源码专题

    ##### 2.1 `ContextLoaderListener`简介 `ContextLoaderListener`是Spring Web应用程序中最常用的启动类之一,它实现了`ServletContextListener`接口,用于在Servlet容器启动时加载Spring上下文。下面是对`...

    resteasy guide

    ### 一、RESTEasy简介 RESTEasy是JAX-RS规范的一个开源实现,它为Java开发者提供了一种简单而强大的方式来创建RESTful Web服务。RESTEasy不仅仅是一个框架,它还包含了一系列的工具和特性,帮助开发者在不同的环境...

    创建简单springboot框架

    #### 一、课程简介与目标 本教程旨在帮助读者了解如何构建简单的Spring Boot框架。Spring Boot是一种流行的Java框架,它简化了基于Spring的应用程序的开发过程。通过本教程,读者将学会如何整合Servlet、Filter、...

    java定时器

    #### 一、Java定时器简介 在Java中,定时器(Timer)是一个非常有用的工具类,它可以用来调度任务在特定时间执行或者周期性地执行。`java.util.Timer` 类提供了这样的功能,使得开发人员能够轻松地实现定时任务。 ...

    Java实训教程 Java软件开发实战 web开发技术 第6章 listener 共21页.pptx

    监听器简介 监听器是一种特殊的技术,用于监测服务器端对象(如`ServletContext`、`HttpSession`、`ServletRequest`)的创建和销毁等事件,并在此基础上执行相应的业务逻辑。这种机制使得开发者能够在系统层面做...

    web环境下Quartz作业调度入门源代码(Jboss)

    1. **Quartz简介** - Quartz是一个轻量级的作业调度框架,支持Cron表达式和复杂的作业触发器。 - 它提供了API来定义作业(Job)和触发器(Trigger),可以灵活地安排作业的执行时间。 2. **Web环境下的Quartz** ...

    springmvc完整教学案例代码

    - 配置 ServletContextListener:用于初始化 Spring MVC 的应用上下文。 3. **控制器(Controller)** - 使用 `@Controller` 注解标记类为控制器,通过 `@RequestMapping` 注解定义请求映射。 - `@GetMapping` ...

    Spring与Web环境集成.pdf

    为了解决这些弊端,我们可以使用ServletContextListener监听Web应用的启动,在Web应用启动时加载Spring的配置文件,创建应用上下文对象ApplicationContext,并将其存储到ServletContext域中。这样,我们就可以在任意...

    web.xml中ContextLoaderListener的运行过程解析

    `ContextLoaderListener`是Spring框架提供的一个监听器类,实现了`javax.servlet.ServletContextListener`接口。它的主要职责是在Web应用启动时创建并初始化Spring的全局ApplicationContext,这个ApplicationContext...

    servlet 源码包

    1. **Servlet简介** Servlet是一种Java类,它扩展了Web服务器的功能,可以接收并响应来自客户端(通常是Web浏览器)的请求。Servlet API由Java Servlet规范定义,是Java EE平台的一部分。 2. **Servlet生命周期** ...

    JavaWeb学习笔记

    - `ServletContextListener`:监听`ServletContext`的初始化和销毁。 - `HttpSessionListener`:监听`HttpSession`的创建和销毁。 - `ServletRequestListener`:监听`ServletRequest`的初始化和销毁。 ### ...

    quartz servletcontext配置资料

    ### Quartz简介 Quartz 提供了一个完全线程化的事件调度器,支持复杂的时间表和触发器,可以实现精确的任务调度。它支持Cron表达式,可以方便地设置任务执行的时间规则。同时,Quartz还提供了持久化能力,即使应用...

    Spring与Web环境集成1

    为了解决这个问题,我们可以利用`ServletContextListener`监听器在Web应用启动时加载配置文件并创建单个ApplicationContext对象。 2. **Spring提供的获取应用上下文的工具**: Spring提供了一个名为`...

    网络应用开发 之 监听对象的属性变更

    ### 监听器简介 监听器是Java Servlet API提供的一种机制,它允许我们注册到特定事件源,当该事件源发生特定事件时,监听器会接收到通知并执行相应的操作。在Web应用中,监听器可以用来跟踪用户的会话、监控上下文...

    《JavaWeb程序设计案例教程》考试题

    - 常见的监听器包括ServletContextListener、HttpSessionListener等。 ### 进阶技术与框架 1. **Spring框架**: - Spring是一个开源框架,用于简化Java应用程序的开发。 - 包括Spring Core、Spring MVC、Spring...

Global site tag (gtag.js) - Google Analytics