如果是服务器启动时就要开始执行,就需要用listener,这样需要在web.xml中增加配置。
如果要点击触发,就在触发类中调用timer,
:
触发类---
定时器----
这个是用listener做触发, 你可以根据自己的需要写自己的触发类
如果要点击触发,就在触发类中调用timer,
:
触发类---
- importjava.util.Timer;
- importjavax.servlet.ServletContextEvent;
- importjavax.servlet.ServletContextListener;
- publicclassTimerTestActionimplementsServletContextListener{
- privateTimertimer;
- publicvoidcontextDestroyed(ServletContextEventservletcontextevent){
- timer.cancel();
- servletcontextevent.getServletContext().log("定时器销毁~~~");
- System.out.println("定时任务结束~~");
- }
- publicvoidcontextInitialized(ServletContextEventservletcontextevent){
- System.out.println("定时任务开始~~");
- timer=newTimer(true);
- timer.schedule(newTimerRunAction(servletcontextevent.getServletContext()),0,5*1000);
- }
- }
定时器----
- importjava.util.Calendar;
- importjava.util.TimerTask;
- importjavax.servlet.ServletContext;
- publicclassTimerRunActionextendsTimerTask{
- privatestaticfinalintC_SCHEDULE_HOUR=0;
- privatestaticbooleanisRunning=false;
- privateServletContextcontext=null;
- publicTimerRunAction(ServletContextcontext){
- this.context=context;
- }
- @Override
- publicvoidrun(){
- Calendarc=Calendar.getInstance();
- if(!isRunning){
- if(C_SCHEDULE_HOUR==c.get(Calendar.HOUR_OF_DAY)){
- context.log("kaishizhixingzhidingrenwu~~");
- }
- else{
- context.log("shangyicirenwuzhixinghaiweijieshu~~~");
- }
- }
- }
- }
这个是用listener做触发, 你可以根据自己的需要写自己的触发类