如何从 Java 网络服务器向网页提供实时更新?
How can I provide live updates to a webpage from a Java webserver?
我正在尝试创建一个 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 网络服务器侦听 http 请求和 returns 数据(通常为 json 或 html 格式)。为避免在浏览器(客户端)中重新加载页面导致用户无法输入,您可以只重新加载页面的一部分。这是通过 ajax 完成的,最简单的方法是使用 java 脚本和一个名为 jQuery 的库。如果你不想为此学习 javascriot,有一个名为 intercoolerjs 的 java 脚本库,它允许你使用普通 html 属性启用 ajax。
编辑:如果您需要让服务器在用户不执行任何操作的情况下更新页面,您必须阅读有关 websockets 的内容。希望这能让你朝着正确的方向前进。
我正在尝试创建一个 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 网络服务器侦听 http 请求和 returns 数据(通常为 json 或 html 格式)。为避免在浏览器(客户端)中重新加载页面导致用户无法输入,您可以只重新加载页面的一部分。这是通过 ajax 完成的,最简单的方法是使用 java 脚本和一个名为 jQuery 的库。如果你不想为此学习 javascriot,有一个名为 intercoolerjs 的 java 脚本库,它允许你使用普通 html 属性启用 ajax。
编辑:如果您需要让服务器在用户不执行任何操作的情况下更新页面,您必须阅读有关 websockets 的内容。希望这能让你朝着正确的方向前进。