浏览器到Web服务器通信:使用JSF倒计时页面

时间:2013-02-08 15:51:31

标签: java jsf timer countdowntimer

新手在这里对我很轻松:D

我对java很好,并编写了一些从输入中倒计时的代码:

import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;

public class Stopwatch {

    static int interval;
    static Timer timer;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Input seconds => : ");
        String secs = sc.nextLine();
        int delay = 1000;
        int period = 1000;
        timer = new Timer();
        interval = Integer.parseInt(secs);
        System.out.println(secs);
        timer.scheduleAtFixedRate(new TimerTask() {
            public void run() {
                System.out.println(setInterval());

            }
        }, delay, period);
    }

    private static final int setInterval() {
        if (interval == 1) {
            timer.cancel();
        }
        return --interval;
    }
}

所以无论用户输入什么,它都会在控制台中每秒倒计时。

但我现在正在尝试制作一个jsf网络应用程序,让用户输入一个输入,这个值传递给上面的java代码,一旦计时器完成,就会出现一个弹出窗口,

这可能与JSF有关吗?我正在以正确的方式解决这个问题,如果不是我应该怎样编辑我的java才能使用

非常感谢:)

1 个答案:

答案 0 :(得分:0)

基本上,HTTP是无状态协议,但是,要实现您想要的功能,您必须在浏览器和服务器之间保持通信开放。不完全是JSF,但是,您可以查看Comet的工作原理http://en.wikipedia.org/wiki/Comet_%28programming%29。您将了解如何在JSF中执行此操作。或者,如果您使用的是现代浏览器(支持HTMl 5)和Web服务器,那么请查看新的 WebSocket http://en.wikipedia.org/wiki/WebSocket编程。