因为servlet在容器启动后就一直存在了,有没有办法让它在指定的时间执行一个操作呢?
比如说:在每天的0点钟生成一个静态的页面?
比如说:在每天的0点钟生成一个静态的页面?
解决方案 »
- 表单提交时,如何判断图片是否上传?
- javamail发邮件报错 SMTPSendFailedException
- 菜鸟级问题,关于jsp自定义标签的问题……(javascript的执行问题)
- 为什么我不能调用java bean的有些函数
- 比较难的问题,出现错误:java.lang.IllegalStateException: Cannot forward a response that is already commited
- 一个session的问题,急~~~~~~
- 能在页面上直接显示excel中的内容,并且修改其中的内容后能直接保存(不管那个文件在服务器上还是本地)吗?
- 在javaBean中GB->UTF-8格式转换问题!!!
- java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态
- 熟悉STRUTS的朋友请进来!为什么我在<html:form>标签中加上name属性,会报错?
- 30分:如何加密 javascript 代码
- 急!急!急!急!com.jspsmart.upload.SmartUploadException: File can't be saved (1120).
private Timer timer; public CheckBean() { } public void start(int t) {
timer = new Timer();
timer.scheduleAtFixedRate(task, 0, t * 1000*60*60);
} public void check() {
try {
//do
} catch (Exception e) {
e.printStackTrace();
}
} TimerTask task = new TimerTask() {
public void run() {
check();
}
};
}
关键有两点:
1.在容器启动时将servlet初始化;这里我先建立了一个Test的servlet,在web.xml中设置了该servlet的load-on-startup参数(我设置为2),使servlet在容器启动时就执行init方法;
2.servlet中运行一个定时线程;这个很简单,创建一个实现Runnable的类,在Test中将它start();
PS:Timer类其实也是基于一个线程的,直接用Thread来实现我觉得更好控制.谢谢各位!