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



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

我可以使用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);
}

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

编辑:如果您需要让服务器在用户不执行任何操作的情况下更新页面,则必须阅读有关websockets的信息。希望这会把你带到正确的方向。

最新更新