2009年1月8日星期四

实现Tomat启动自动运行一个类

  •  用一个例子来说明问题,本例要求统计tomcat启动的次数,并保存在d:/test.txt中。一个很简单的逻辑,重点在于tomcat启动自动加载一个类来实现一定的操作。
  •  首先编写一个servlet类--Startup.java
  •  将需要自动运行的操作代码写在init方法中。
  •  如下配置web.xml
  <servlet>

    <servlet-name>startup</servlet-name>

    <servlet-class>com.usease.Startup</servlet-class>

    <load-on-startup>1</load-on-startup>

  </servlet>

  •  附servlet全代码:
package com.usease;

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.*;


public class Startup extends HttpServlet {

    private static final String CONTENT_TYPE = "text/html; charset=GBK";

    //Initialize global variables

    public void init() throws ServletException {

        try {

            File file = new File("d:/test.txt");

            int count = 0;

            if (file.exists()) {

                BufferedReader in = new BufferedReader(new FileReader(file));

                String inString = in.readLine();

                count = Integer.parseInt(inString);

                in.close();

            }

            count++;

            PrintWriter out = new PrintWriter(new FileOutputStream("d:/test.txt"));

            out.print(count);

            out.close();

        }

 catch (IOException e) {}

        System.out.println("Count completed!");

    }

    //Process the HTTP Get request

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws

            ServletException, IOException {

    }

    //Clean up resources

    public void destroy() {

    }

}
  •  这样,当Tomcat加载这个Context路径的时候,就会自动相应的操作了。

说明:一般这个操作用于Tomcat启动后自动加载一些全局变量,初始化信息等,当然你可以象本例中做一些其他操作。

没有评论:

World Clocks

Endless Space Headline Animator

Mobile Ads