如何用java在后台页面开发一个计时器

如何用java在后台页面开发一个计时器

问题描述:

主要用于考试系统计时,时间结束,页面自动提交到服务器求各位大神帮忙讲一下,我是一个初学者,谢谢大家了!

直接前台获取js的倒计时就可以了,但是保险一点的话,后台也可以同时计时,通知前台自动提交试卷。

客户端轮询服务器时间,到点提交就可以了。

用js做个计时器,时间到了就发送请求到后台,后台实现具体的业务就可以啦。
js倒计时百度下好多现成的代码。

如果用java语言,可以用 java.util.Timer 这个类。
大概代码如下:

 public class TimerTest {
    public static void main(String[] args){
        Timer timer=new Timer();
        Date firstTime=new Date();
        long period=5000;     //5s
        timer.schedule(new MyTask(), firstTime, period);
        //schedule有几个不同的重载方法
        while(true){
            Scanner scan=new Scanner(System.in);
            String flag=scan.nextLine();
            if("exit".equals(flag)){
                timer.cancel();
                break;
            }
        }
    }
}
class MyTask extends java.util.TimerTask{

    @Override
    public void run() {
        // TODO Auto-generated method stub
        //你要执行的任务
        System.out.println("action--"+new Date());
    }
}

时间到了,通知前台。

用JS做定时器就行了

 var s = 59;//用来记录秒,因为需求是从59开始的。 
    var m = residueTime-1;//用来记录分钟  
    var w = setInterval(function() {
        s--;
        if (s == -1) {//当秒减到0时,分钟减1,秒钟从60开始。         
                m--;
                s = 59;
            }
            span.innerHTML = m + ":" + (s < 10 ? "0" + s : s); //显示时间(秒小于10时,前补0)      
            /* if (m % 2 == 0 && s == 0 && m > 0) {
                //保存答题结果和时间
                submitExam(m,"1");
            } */
            if (s % 30 == 0 ) {
                //保存答题结果和时间
                submitExam(m,"1");
            }
            if (m == 0 && s == 0) { //提交试卷
                submitExam(m,"2");
            } //到过5分钟时停止 
            if(m < 0){
                submitExam(m,"2");
            }
        }, 1000);

服务器端 记录答题者开始答题动作 服务器时间。客户端 js 定时。提交后 根据服务提交时间 与开始时间比较。看有没“开挂”。