tomcat启动时自动加载一个类 MyServletContextListener

目的:

我们知道在tomcat启动后,需要页面请求进行驱动来执行操作接而响应。我们希望在tomcat启动的时候能够自动运行一个后台线程,以处理我们需要的一些操作。因此需要tomcat启动时就自动加载一个类,或运行一个类的方法。

可以采用ServletContextListener。

方法:

(1)编写一个监听类,实现javax.servlet.ServletContextListener接口。

 1 import javax.servlet.ServletContextEvent;
 2 import javax.servlet.ServletContextListener;
 3
 4 import com.SWDiskTest.Control.ManagerThread;
 5 import com.SWDiskTest.model.Chamber;
 6
 7 public class MyServletContextListener implements ServletContextListener {
 8     static Chamber chamber = new Chamber();
 9     static{
10         System.out.println("static");
11         new Thread(new ManagerThread(chamber)).start();
12     }
13
14     @Override
15     public void contextDestroyed(ServletContextEvent arg0) {
16         // TODO Auto-generated method stub
17
18     }
19
20     @Override
21     public void contextInitialized(ServletContextEvent arg0) {
22         // TODO Auto-generated method stub
23         System.out.println("start");
24
25     }
26
27 }

(2)配置web.xml

<web-app version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <listener>
      <listener-class>com.SWDiskTest.startup.MyServletContextListener</listener-class>
  </listener>
......
</web-app>

注意:

应用事件监听器程序是建立或修改servlet环境或会话对象时通知的类。它们是servlet规范的版本2.3中的新内容。注册一个监听程序涉及在web.xml的web-app元素内放置一个listener元素。虽然listener元素的结构很简单,但请不要忘记,必须正确地给出web-app元素内的子元素的次序。listener元素位于所有的servlet元素之前以及所有filter-mapping元素之后。此外,因为应用生存期监听程序是serlvet规范的2.3版本中的新内容,所以必须使用web.xmlDTD的2.3或以后版本。

时间: 2024-11-11 21:52:13

tomcat启动时自动加载一个类 MyServletContextListener的相关文章

如何在tomcat启动时自动加载一个类

有时候在开发web应用的时候,需要tomcat启动后自动加载一个用户的类,执行一些初始化方法,如从数据库中加载业务字典到内存中,因此需要在tomcat启动时就自动加载一个类,或运行一个类的方法. 可以采用在WEB-INF/web.xml中添加一个监听程序(ServletContextListener配置项),步骤如下:1) 增加一个监听程序 MyServletContextListener.java, 实现javax.servlet.ServletContextListener接口 packag

Tomcat启动时自动加载Servlet

1.想做一个服务启动时自动启动一不停止的获取订阅功能 2.之前是做一个Jsp页面请求servlet来触发方法 3.现在实现Tomcat启动时自动加载Servlet 1.Tomcat中启动Servlet时,只需要在Servlet所在的工程的配置文件web.xml中写成如下即可 <!-- 自动启动订阅接口 --> <servlet> <servlet-name>TimeServlet</servlet-name> <servlet-class>ser

胖客户端启动时自动加载

修改配置文件 <!-- 系统启动时自动加载--> <extension point="org.eclipse.ui.startup"> <startup class="xxxxx.ReminderAction"/> </extension> 创建加载的类 public class ReminderAction implements IStartup { @Override public void earlyStartu

设置R启动时自动加载常用的包或函数

在我前面的文章(http://www.cnblogs.com/homewch/p/5749850.html)中有提到R可以自定义启动环境,需要修改R安装文件中的ect文件夹下的配置文件Rprofile.site即可: Rprofile.site文件里,设置的内容包括默认编辑器,CRAN镜像选取,自动加载包等等. 如果你想要将常用的package和function在启动的时候让R自动加载,则可以将其写入到Rprofile.site文件的自定义函数里,重新启动R即可实现.在打开Rprofile.si

Tomcat启动时选择加载项目

到tomcat\conf\Catalina\localhost下新建文件:myapp.xml 内容如下: <Context path="/myapp" docBase="D:/myapp" reloadable="true"> </Context> 这样你就可以用.xml文件来控制要启动的应用了 可以在tomcat\conf\Catalina\localhost下再建个bak目录 把暂时不用的应用的.xml文件放到里边 因

java web项目启动时自动加载自定义properties文件

首先创建一个类 public class ContextInitListener implements ServletContextListener 使得该类成为一个监听器.用于监听整个容器生命周期的,主要是初始化和销毁的. 类创建后要在web.xml配置文件中增加一个简单的监听器配置,即刚才我们定义的类. Xml代码 <listener> <!-- lang: xml --> <description>ServletContextListener</descri

如何在tomcat启动时加载一个类

Tomcat启动时classloader加载顺序 Tomcat的class加载的优先顺序一览   1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件.   2.环境变量CLASSPATH中的jar和class文件.   3.$CATALINA_HOME/common/classes下的class文件.   4.$CATALINA_HOME/commons/endorsed下的jar文件.   5.$CATALINA_HOME/commons/i18n下的jar文件.   6.

JDBC4.0自动加载驱动器类

1 JDBC4.0自动加载驱动器类 2 从JDK1.6开始,Oracle就将修改了添加了新的加载JDBC驱动的方式.即JDBC4.0.在启动项目或是服务时,会判断当前classspath中的所的jar包,并检查META-INF目录下,是否包含services文件夹,如果包含,就会将里面的配置加载成相应的服务. 3 如Oracle11g的ojdbc6.jar包: 4 5 META-INF/services/jdbc.sql.Driver文件内容只有一行,即实现java.sql.Driver的类:

Tomcat启动时自动运行某程序

项目需要和tmall实现长连接,接收tmall推送的Order消息,然后对消息进行逻辑处理. 目前写了一个servlet,实现了permit的验证,然后对tmall进行长连接操作,启动后,只要tomcat一直运行着,长连接就不会断掉.现在的需求是tomcat启动后我这个servlet自己就运行起来,不用我自己再去访问一下配置的servlet路径. 资料: http://www.cnblogs.com/Payne-Wang/archive/2013/04/01/loadOnTomcatStartu