方式一:定时器方式(定时任务)
web.xml中加入监听器
<listener>
<listener-class>com.qyj.autoback.AutoBackListener</listener-class>
</listener>
AutoBackListener.java
package com.qyj.autoback;
import java.util.Timer;
import javax.servlet.ServletContextEvent;//这个是自启动要用到的类,服务器后台事件
import javax.servlet.ServletContextListener;//这个是自启动要用到的类,服务器后台监听
//声明一个autoRun类,使用服务器后台监听接口。固定用法,死记硬背
public class AutoBackListener implements ServletContextListener{
private Timer timer = null;
// 当后台被初始化,即发生了tomcat启动了事件,固定用法
public void contextInitialized(ServletContextEvent event) {
// 你要做的事儿,写在这里
System.out.println("AutoBack is running...");
// 在这里初始化监听器,在tomcat启动的时候监听器启动,可以在这里实现定时器功能
timer = new Timer(true);
System.out.println("定时器启动");
// 调用exportHistoryBean,0表示任务无延迟,24*60*60*1000表示一天执行一次。
timer.schedule(new TimerTaskRun(event.getServletContext()), 5 * 1000,
//24 * 60 * 60 * 1000);
10 * 1000);
}
// 当后台被销毁,即发生了tomcat关闭了事件,固定用法
public void contextDestroyed(ServletContextEvent event) {
// 执行内容写在这里
timer.cancel();
}
}
TimerTaskRun .java
package com.qyj.autoback;
import java.util.TimerTask;
import javax.servlet.ServletContext;
public class TimerTaskRun extends TimerTask {
@SuppressWarnings("unused")
private ServletContext context = null;
public TimerTaskRun(ServletContext context) {
this.context = context;
}
public void run() {
// 这里就是调用自己的方法了
System.out.println("定时任务执行(定时下载备份文件)...");
}
}
方式二:(只能完成初始化工作 不能用while循环 tomcat会一直卡在启动状态)
web.xml中加入监听器
<listener>
<listener-class>com.qyj.autoback.AutoBack</listener-class>
</listener>
AutoBack.java
package com.qyj.autoback;
import javax.servlet.ServletContextEvent;//这个是自启动要用到的类,服务器后台事件
import javax.servlet.ServletContextListener;//这个是自启动要用到的类,服务器后台监听
//声明一个autoRun类,使用服务器后台监听接口。固定用法,死记硬背
public class AutoBack implements ServletContextListener{
// 当后台被初始化,即发生了tomcat启动了事件,固定用法
public void contextInitialized(ServletContextEvent arg0) {
// 你要做的事儿,写在这里
System.out.println("AutoBack is running...");
}
// 当后台被销毁,即发生了tomcat关闭了事件,固定用法
public void contextDestroyed(ServletContextEvent arg0) {
// 执行内容写在这里
}
}