如何从Java Web服务器提供网页的实时更新?

时间:2017-05-22 17:07:43

标签: java asp.net webserver

我正在尝试创建一个Java(不是javascript,但我可以肯定地包含它)webserver,它可以将另一个Java程序的实时控制台打印到网页上。我知道如何制作Java Web服务器,并且我知道如何访问其他正在运行的Java程序的输入和输出流,但我不知道如何发送控制台输出并从该人正在查看的网页获取控制台输入。 / p>

我可以使用html并让页面每半秒重新加载一次,但是没有人可以输入任何内容发送到控制台。

有人建议我使用ASP,但我不知道从哪里开始。

总结一下,我想向网页发送和显示实时数据,并接收回到网络服务器的实时用户输入。

作为参考,我使用以下内容作为我要发送到网页的输出:

ProcessBuilder pb = new ProcessBuilder("java", "-jar", "my.jar");
pb.directory(new File("C:/Users/Michael Forseth/Desktop/Server Stuff/Test Moltres/TEST SERVER"));
final Process p = pb.start();

InputStream in = p.getInputStream();
InputStreamReader ins = new InputStreamReader(in);
BufferedReader br = new BufferedReader(ins);

String line;
while((line = br.readLine()) != null){
    //Send "line" to webpage for user to see
    System.out.println("CONSOLE: " + line);
}

1 个答案:

答案 0 :(得分:0)

您正在描述现代网站的运作方式。 java webserver侦听http请求并返回数据(通常是json或html格式)。为避免在浏览器(客户端)中重新加载页面以便用户无法键入,您只需重新加载页面的一部分即可。这是通过ajax完成的,最简单的方法是使用javascript和一个名为jQuery的库。如果您不想为此学习javascriot,那么有一个名为intercoolerjs的javascript库,它允许您使用普通的html属性启用ajax。

编辑:如果您需要让服务器在没有用户执行任何操作的情况下更新页面,您必须阅读websockets。希望这能让你朝着正确的方向前进。