1 用一個例子來說明問題,本例要求統計tomcat啟動的次數,并保存在d:/test.txt中。一個很簡單的邏輯,重點在于tomcat啟動自動加載一個類來實現一定的操作。
2 首先編寫一個servlet類--Startup.java
3 將需要自動運行的操作代碼寫在init方法中。
4 如下配置web.xml
? <servlet>
??? <servlet-name>startup</servlet-name>
??? <servlet-class>com.usease.Startup</servlet-class>
??? <load-on-startup>1</load-on-startup>
? </servlet>
5 附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() {
??? }
}
6 這樣,當Tomcat加載這個Context路徑的時候,就會自動相應的操作了。
?
說明:一般這個操作用于Tomcat啟動后自動加載一些全局變量,初始化信息等,當然你可以象本例中做一些其他操作。