先写个实现具体功能的task public class WebServiceTask extends TimerTask{ private ServletContext context; private static boolean isRunning = false; private static boolean flag = true; private static final int C_SCHEDULE_HOUR = 11; public WebServiceTask(ServletContext context){ this.context = context; } public void run() { Calendar cal = Calendar.getInstance(); if (!isRunning) { if (C_SCHEDULE_HOUR == cal.get(Calendar.HOUR_OF_DAY) && flag) { isRunning = true; System.out.println("开始同步!"); try { //具体实现代码 } catch (Exception e) { e.printStackTrace(); } isRunning = false; flag = false; System.out.println("执行指定任务"); } } else { System.out.println("上一次任务执行还未结束"); } if(C_SCHEDULE_HOUR != cal.get(Calendar.HOUR_OF_DAY)){ flag = true; } } 接下来写个Listener public class WorkServiceImpl implements ServletContextListener{ private Timer timer; private WebServiceTask webServiceTask; public void contextDestroyed(ServletContextEvent event) { timer.cancel(); System.out.println("定时器已销毁"); } public void contextInitialized(ServletContextEvent event) { timer = new Timer(true); webServiceTask = new WebServiceTask(event.getServletContext()); System.out.println("定时器已启动"); timer.schedule(webServiceTask, 0, 60 * 60 * 1000); System.out.println("已经添加任务调度表"); } } 然后在web.xml中配置Listener <listener> <listener-class>Listener</listener-class> </listener>