servlet-ServletContextListener 不起作用?

问题描述

ServletContextListener 不起作用?

ServletContextListener 可以监听servlet 生命周期
项目启动的时候应该会执行 其
contextInitialized() 才对
但是楼主的并没有执行,到底是为什么?
代码如下:
public class init implements ServletContextListener{
private ExecutorService threadService;

private Timer timer;

public init()
{
    threadService = Executors.newFixedThreadPool(1);
    timer = new Timer();
}

public void contextInitialized(ServletContextEvent arg0) {
    InputStream in = init.class.getResourceAsStream("/config.properties");
    Properties p = new Properties();

    try {
        p.load(in);
        Constant.Config = (Hashtable) p.clone();

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    TimerTask accessTask = new AccessToken();
    TimerTask initMenu = new InitMenu();

}

解决方案

是这样的没错啊,关键是你有没有在web.xml中的listener节点下配置这个ServletContextListener的监听器呢?
配置实例代码:

 <listener>
 <listener-class>
 com.listeners.MyContextListener
 </listener-class>
 </listener>
 <servlet/>
 <servlet-mapping/>

解决方案二:

你把监听写进配置文件了吗

时间: 2024-08-01 07:00:22

servlet-ServletContextListener 不起作用?的相关文章

Servlet规范总结

Servlet接口 Servlet规范的核心接口即是Servlet接口,它是所有Servlet类必须实现的接口,在Java Servelt API中已经提供了两个抽象类方便开发者实现Servlet类,分别是GenericServlet 和 HttpServlet,GenericServlet定义了一个通用的.协议无关的Servlet,而HttpServlet则定义了Http协议的Servlet,这两个抽象类可以使Servlet类复用很多共性功能. Servlet接口的核心方法为service方法

Servlet中的监听器及监听在线人数实例

Servlet API提供了基本的应用程序事件监听器接口.编程者可以通过实现这些接口来使用管理事件的功能.Servlet2.4以后提供了对以下对象的事件监听:ServletContext,HttpSession,ServletRequest.监听ServletContext可以使Web程序得知整个应用程序载入和卸载等运行情况.监听HttpSession可以Web程序了解应用程序会期间的状况并作出响应.监听ServletRequest可以使 Web程序控制Web请求的生命周期.下面结合JavaSe

第六章 对象作用域与servlet事件监听器

      作用域对象 Servlet上下文监听器 Servlet会话监听器 Servlet请求监听器     一:对象作用域   作用域对象 属性操作方法 作用域范围说明 ServletContext(上下文) void setAttribute(String, Object) Object getAttribute(Sting) void removeAttribute(String) Enumeration getAttributeNames() 整个Web应用程序 HttpSession

Java中用Servlet容器实现程序监听

servlet|程序 分两步走:(1). 实现 javax.servlet.ServletContextListener 接口的两个方法:contextInitialized()和contextDestroyed() contextInitialized():当Servlet容器启动时会执行 contextDestroyed():当Servlet容器停止时会执行(2). 在contextInitialized()中加入需要监听的程序,并由 java.util.Timer 的 schedule()

Java中用Servlet Listener实现定时监听

分两步走: (1). 实现 javax.servlet.ServletContextListener 接口的两个方法:contextInitialized()和contextDestroyed() contextInitialized():当Servlet容器启动时会执行 contextDestroyed():当Servlet容器停止时会执行 (2). 在contextInitialized()中加入需要监听的程序,并由 java.util.Timer 的 schedule() 方法来控制监听程

tomcat关闭时执行servlet?

问题描述 tomcat启动时可以用<load-on-startup>1</load-on-startup>执行servlet那关闭前能自动执行servlet吗?主要是自己写的连接池,在tomcat启动时创建连接,想在tomcat关闭时关掉连接池里的所有连接.新手哈.原理不太清楚,猜想是不是tomcat关闭时连接也自动关闭了?这样就没问题了.谢谢! 解决方案 解决方案二:拜托,那个<load-on-startup>1</load-on-startup>是指启动

第十六章_动态注册和Servlet容器初始化

16.1.动态注册 为了使动态注册成为可能,ServletContext接口中还添加了以下方法,用来动态地创建Web对象: <T extends Filter>createFilter(Java.lang.Class<T> clazz) <T extends java.util.EventListener> createListener(java.lang.Class<T> clazz) <T extends Servlet> createSer

filter,servlet,listener

1.Filter的功能 filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response.换种说法,filter其实是一个"servlet chaining"(servlet 链). 一个Filter包括: 1).在servlet被调用之前截获; 2).在servlet被调用之前

tomcat修改了context doc-base为项目里面的文件夹后项目的servlet找不到

问题描述 tomcat修改了context doc-base为项目里面的文件夹后项目的servlet找不到 我的项目名称叫drivproj,里面有个文件夹叫offsite,我在tomcat的server.xml里将context doc-base修改为drivproj/offsite,那么我原先在drivproj/web-inf里的web.xml里添加的servlet就不起作用了!运行当用到servlet的时候提示找不到该名称!求大神帮忙!急急急!另附WEB.XML:<?xml version=