`

转:web程序的初始化问题——ServletContextListener----调试成功

 
阅读更多

当web服务器启动后,它会去解析web.xml,如果我们需要在服务启动以后做一些初始化,那么可以在web.xml中配置ServeltContextListener来达到初始化,因为Web应用程序的“初始阶段”,Servlet容器会调用ServletContextListener对象的contextInitialized()方法

   public class MyWebContextListener implements ServletContextListener{

// @Override
 public void contextDestroyed(ServletContextEvent event) {
  
 }

// @Override
 public void contextInitialized(ServletContextEvent event) {
  SpringConfig.init(event.getServletContext());
  DataManage.getInstance();
 }

}

然后将这个WebContextListener配到web.xml中即可

     <listener>
        <listener-class>com.MyWebContextListener</listener-class>
    </listener>

在初始化阶段,web容器(如tomcat)将会调用这个 contextInitialized方法,这时如果我们需要Spring的ApplicationContext对象时,就可以在init方法中实现:

 public class SpringConfig {
 private static ApplicationContext springContext;
 public static void init(ServletContext servletContext) {
  springContext=WebApplicationContextUtils.getWebApplicationContext(servletContext);
 }
 
 public static ApplicationContext getSpringContext(){
  return springContext;
 }
}

这样我们就可以通过单例模式得到的ApplicationContext对象springContext来随意地取得所需要的service bean了:

public class DataManage {
 private static DataManage instance;
 private TaskTypeService taskTypeSV=(TaskTypeService) SpringConfig.getSpringContext()
 .getBean("taskTypeService");
 private StageService stageSV=(StageService) SpringConfig.getSpringContext()
 .getBean("stageService");
 private ProjectService projectSV=(ProjectService) SpringConfig.getSpringContext()
 .getBean("projectService");
// private ProjectTypeService projectTypeSV;
 private UserService userSV=(UserService) SpringConfig.getSpringContext()
 .getBean("userService");
 private CategoryService categorySV=(CategoryService) SpringConfig.getSpringContext()
 .getBean("categoryService");

 

web程序的初始化问题——ServletContextListener----调试成功

web程序的初始化问题——ServletContextListener
时间: 2005-01-04

应用ServletContextListener接口,可以实现在web应用程序初始化时,自动运行一些初始化程序。

ServletContextListener接口定义的方法

方法名称

调用时机

Void contextInitialized(ServletContextEvent sce)

Web应用程序的“初始阶段”,Servlet容器会调用ServletContextListener对象的contextInitialized()方法

Void contextDestroyed(ServletContextEvent sce)

Web应用程序的“结束阶段”,Servlet容器会调用ServletContextListener对象的contextDestoryed()方法

应用此接口时,要在web.xml文件内定义“监听器类”的名称,此时要注意:

在Servlet规范中并未限制一个Web应用程序只能对应一个“监听器类”,但是在web.xml内定义<listener>元素时得注意下列两点:
<listener>元素必须出现在任何Context起始参数(由<context-param>元素所定义)之后。
<listener>元素必须出现在任何Servlet实体(由<servlet>元素所定义)之前。

举例:

web.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd"
    version="2.4">

    <description>
      test servlet listener
    </description>
    <display-name>testServletListener</display-name>
 <listener>
  <listener-class>com.chuyang.Test
   </listener-class>
</listener>
 
</web-app>

Test.java:

package com.chuyang;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class Test implements ServletContextListener {
 public void contextInitialized(ServletContextEvent event) {
  System.out.println("servlet initialized.........");
 }
 public void contextDestroyed(ServletContextEvent event) {
  System.out.println("servlet destroyed..........");
 }
}
分享到:
评论

相关推荐

    ServletContextListener的应用

    在Java Web开发中,`ServletContextListener`是一个非常重要的接口,它是Servlet API的一部分,定义了两个方法:`contextInitialized`和`contextDestroyed`。这个接口的主要作用是监听Servlet上下文(`...

    Java Web程序设计(04112560)--实验7.pdf

    这些监听器允许开发者在Web应用程序的整个生命周期中执行特定的操作,如初始化和销毁。监听器可以监听到如上下文初始化(contextInitialized)和上下文销毁(contextDestroyed)等事件。工作流程如下: 1. Web应用...

    23-Listener-源代码.rar

    案例-使用监听器完成定时生日祝福、,...a、初始化的工作:初始化对象 初始化数据 ---- 加载数据库驱动 连接池的初始 化 b、加载一些初始化的配置文件 --- spring的配置文件 c、任务调度----定时器----Timer/TimerTask

    Java Web程序设计教程源码10-15章

    Java Web程序设计是开发互联网应用程序的关键技术,涵盖了诸如Servlet、JSP、JSTL、EL、Filter、Listener等核心概念。本教程源码10-15章的提供,为学习者提供了深入实践的宝贵资源,确保每一个示例都能运行,帮助...

    Java Web程序设计教程源码3-9章

    Java Web程序设计是开发互联网应用程序的关键技术,涵盖了诸如Servlet、JSP、JSTL、过滤器、监听器、MVC模式、JDBC数据库连接、会话管理等多个核心概念。本教程源码3-9章提供了从基础到进阶的实例,帮助初学者深入...

    Web系统与技术--实验十.pdf

    综合以上内容,可以理解为:Web系统与技术实验十的核心在于学习和实践Java Servlet技术,特别是与Web应用环境相关的高级特性,比如监听器的使用、会话管理、Web应用的初始化和销毁过程等。通过这些实验,学习者能够...

    web.xml加载顺序与web.xml常用节点解析

    - `&lt;listener&gt;`:定义监听器类,可以监听Web应用程序的特定事件,如`ServletContextListener`用于初始化和销毁上下文。 - `&lt;session-config&gt;`:配置会话的相关属性,如超时时间。 - `&lt;mime-mapping&gt;`:定义文件...

    Spring源码学习七:web应用自动装配Spring配置文件1

    本文主要围绕"Spring源码学习七:web应用自动装配Spring配置文件1"这一主题,详细解析Web环境中Spring的初始化过程。 首先,我们注意到在传统的Java应用程序中,通常使用`ClassPathXmlApplicationContext`手动创建...

    Spring MVC启动时初始化的几个常用方法

    在Spring MVC框架中,应用程序启动时会执行一系列初始化操作,这些操作对于理解Spring MVC的工作原理至关重要。本篇文章将深入探讨Spring MVC启动时初始化的几个常用方法,并解释它们在实际开发中的作用。 首先,...

    Java的监听器种类.pdf

    - ServletContextListener:这个接口包含两个方法,用于监听ServletContext对象的初始化和销毁: - contextInitialized(ServletContextEvent): 应用程序启动,Servlet上下文被创建时调用。 - contextDestroyed...

    servlet-api-3.0.zip

    - 监听器可以监听Web应用程序中的特定事件,如会话创建、销毁,上下文初始化、销毁等。常见的监听器有`ServletContextListener`,`HttpSessionListener`等,可通过`@WebListener`注解配置。 5. **部署描述符(web....

    web.xml配置参考文档-CHM格式--JAVA WEB开发必备参考文档

    web.xml文件,全称是Web应用部署描述符,是Servlet容器用来理解并初始化Web应用程序的关键配置文件。在该文件中,开发者可以定义Servlet、Filter、Listener、Session超时、错误页面、欢迎页面、MIME类型映射以及许多...

    java web开发

    - **初始化**: 通过 `init()` 方法完成初始化。 - **服务**: 通过 `service()` 方法处理 HTTP 请求。 - **销毁**: 通过 `destroy()` 方法释放资源。 - **实现步骤**: - 创建 Servlet 类,继承 `HttpServlet` 类...

    web学习笔记 —— 监听器

    3. **上下文监听器**:`ServletContextListener`,当Web应用程序启动和停止时触发,用于初始化和清理工作。 4. **生命周期监听器**:如`ContainerListener`,可以监听到Servlet容器内部组件的生命周期变化。 三、...

    ServletContextListener,Timer,TimerTask学习笔记

    首先,`ServletContextListener`是Java Servlet API中的一个接口,它允许我们监听Web应用程序的初始化和销毁事件。当Web应用启动时,服务器会自动调用实现了`ServletContextListener`接口类的`contextInitialized`...

    servlet-api-3.0.jar包

    9. **生命周期管理**:Servlet 3.0允许自定义Servlet、Filter和Listener的初始化和销毁逻辑,通过实现`ServletContextListener`接口中的相应方法。 `servlet.LICENSE.txt`文件通常包含了关于Servlet API 3.0的许可...

    解析web-config.xml文件,并将里面的元素转换成对应的JAVA对象

    在Web应用启动时,容器(如Tomcat)会自动解析`web-config.xml`,并根据配置创建Servlet、过滤器和监听器实例,进行初始化和注册。这样,当请求到来时,容器能够根据配置执行相应的处理逻辑。 总结来说,解析`web-...

    listener和filter 监听器和过滤器的介绍以及简单使用(csdn)————程序.pdf

    2. **监听器用途**:主要用于监控应用程序的状态,如跟踪用户会话、初始化和关闭应用上下文、管理缓存等。在GUI编程(如Java Swing、Android)中,监听器用于响应用户的交互事件。 3. **监听器术语**: - **事件源...

    scwcd-2 英文原版考试题

    在Java中,ServletContextListener接口用于监听Web应用程序的初始化和销毁事件。正确实现监听器的类需要实现`contextInitialized(ServletContextEvent)`方法,而不是`contextCreated(ServletContext)`,因为`context...

Global site tag (gtag.js) - Google Analytics