Servlet 모니터 와 타이머 타이머 가 결합 하여 JAVA WEB 응용 간단 한 자동 작업 을 실현 합 니 다.

2325 단어 Servlet/JSP
웹 응용 프로그램 에서 가끔 은 고객 이 시간 에 맞 는 프로그램 이 필요 합 니 다.고객 이 직접 조작 하지 않 고 응용 프로그램 이 자체 적 으로 특정한 조작 을 수행 해 야 합 니 다.이 럴 때 감청 과 타이머 의 배합 사용 은 기본적으로 이 수 요 를 실현 할 수 있다.
 
 1.감청 SERVELET 를 만 듭 니 다.이 종 류 는 javax.servlet.http.HttpServlet 를 계승 하고 javax.servlet.servlet ContextListener 를 실현 합 니 다.
package com.bndz.outMail;

import java.util.Timer;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServlet;

/**
  * 
  *            WEB-XML   
 */
public class MailSendListener extends HttpServlet implements
   ServletContextListener {

 /**
   *       
  */
  public void contextDestroyed(ServletContextEvent sce) {

 }

 /**
   *       
  */
  public void contextInitialized(ServletContextEvent sce) {

  //         ,    TIME
   Timer timer = new Timer();
   System.out.println("-------MailSend   Timer      --------------");
   MailSendTask msendTask = new MailSendTask();
   timer.schedule(msendTask, 60 * 1000, 10 * 1000);
   System.out.println("-------MailSend   Timer     --------------");
  }
 }

2.설정 에 사용 할 WEB.XML 파일 을 설정 합 니 다.
  
     com.bndz.outMail.MailSendListener
   

3.MailSendTask 를 만 들 고 java.util.TimerTask 를 계승 하여 RUN 방법 에서 프로그램 을 실행 합 니 다.
package com.bndz.outMail;

import java.util.Date;
import java.util.TimerTask;

/**
  * JAVA       
 * 
  * @author Guox2011-05-10
  * 
  */
 public class MailSendTask extends TimerTask {

 public MailSendTask() {

 }

 /**
   * RUN      SCHEDULE                    
  */
  public void run() {

  System.out.println(new Date()+ "---MailSendTask begin to RUN ------------");
   MailSendManager mainSendManager = new MailSendManager();
   mainSendManager.waitingMailRemind();
  }

}

 
4.SERVELET 를 감청 하 는 context Initialized 방법 에서 TIMER 를 작성 합 니 다.위 에서 묘사 한 MailSendTask 임 무 를 SCHEDULE 방법 으로 수행 하도록 합 니 다.
 //         ,    TIME
  Timer timer = new Timer();
   System.out.println("-------MailSend   Timer      --------------");
   MailSendTask msendTask = new MailSendTask();
  timer.schedule(msendTask, 60 * 1000, 10 * 1000);
   System.out.println("-------MailSend   Timer     --------------");

좋은 웹페이지 즐겨찾기