java web项目 当到某个时间 系统自动从数据库查询数据 并在页面中可以显示出来,能详细点吗?

谢啦
2024-12-14 18:39:38
推荐回答(4个)
回答1:

public class Timer extends Object一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。

与每个 Timer 对象相对应的是单个后台线程,用于顺序地执行所有计时器任务。计时器任务应该迅速完成。如果完成某个计时器任务的时间太长,那么它会“独占”计时器的任务执行线程。因此,这就可能延迟后续任务的执行,而这些任务就可能“堆在一起”,并且在上述不友好的任务最终完成时才能够被快速连续地执行。

对 Timer 对象最后的引用完成后,并且 所有未处理的任务都已执行完成后,计时器的任务执行线程会正常终止(并且成为垃圾回收的对象)。但是这可能要很长时间后才发生。默认情况下,任务执行线程并不作为守护线程 来运行,所以它能够阻止应用程序终止。如果调用者想要快速终止计时器的任务执行线程,那么调用者应该调用计时器的 cancel 方法。

如果意外终止了计时器的任务执行线程,例如调用了它的 stop 方法,那么所有以后对该计时器安排任务的尝试都将导致 IllegalStateException,就好像调用了计时器的 cancel 方法一样。

此类是线程安全的:多个线程可以共享单个 Timer 对象而无需进行外部同步。

具体方法
void schedule(TimerTask task, Date firstTime, long period)
安排指定的任务在指定的时间开始进行重复的固定延迟执行。

回答2:

在你的web项目里设定个刷新时间,每个多少时间重新url一下,如果有内容在输入,则延时指定时间后刷新

回答3:

JDK自带了定时任务的实现,Task类,你去网上找找Java怎么实现定时任务,,很简单的,就在你自己的定时任务实现类里面调你的原来的查数据的操作,然后显示在页面就行了

回答4:

简单实现的话,就启动一个线程,用一个死循环扩起来,然后用sleep去延时,取出的变量可以放在一个全局变量里,通过<%=Thread.dbnum%>显示;也可以以写入字符文件,在页面上include就行,
public static int dbnum;
.....
public xxMethod(){
....
while(true) {
dbnum = selectFromDB();
Thread.sleep(1*60*1000) ; //1ms * 60 * 1000 = 1分钟
}
....
}