Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当客户端文件更改时更新JSP_Java_Javascript_Html_Jsp - Fatal编程技术网

Java 当客户端文件更改时更新JSP

Java 当客户端文件更改时更新JSP,java,javascript,html,jsp,Java,Javascript,Html,Jsp,我正在从事一个由两部分组成的项目: a) 在客户机上运行的Java应用程序。 b) 托管在Web服务器上的Web应用程序 Java应用程序在一段随机时间间隔后生成一些结果。这些结果需要使用其中的javascript方法(比如每5秒一次)反映在webpage/JSP上,以便它是最新的 你能建议一些方法吗 我相信java应用程序不需要向服务器端发送任何请求。相反,如果它可以写入一个本地文件,JSP中的javascript方法将不断监视该文件的更改并用内容更新JSP,那么它就可以做到这一点。但我不知道

我正在从事一个由两部分组成的项目:

a) 在客户机上运行的Java应用程序。 b) 托管在Web服务器上的Web应用程序

Java应用程序在一段随机时间间隔后生成一些结果。这些结果需要使用其中的javascript方法(比如每5秒一次)反映在webpage/JSP上,以便它是最新的

你能建议一些方法吗


我相信java应用程序不需要向服务器端发送任何请求。相反,如果它可以写入一个本地文件,JSP中的javascript方法将不断监视该文件的更改并用内容更新JSP,那么它就可以做到这一点。但我不知道这是否可行,如果可行,需要怎么做

此外,IE和Firefox都应支持WebApplication


提前感谢您的帮助。

使用javascript监控文件系统上的文件不是一种好方法。如果你把任务分成两半会更好:

1) 显示当前文件的简单页面。这可以通过setTimeout()函数的简单轮询实现

通常以以下形式实施:

var myApp={};
var fiveSecondsInterval=5000;
var myApp.pollServer=function(){ setTimeOut(function(){ 
/* retrieve the current data */
if(conditionIsNotMet) myApp.pollServer();
}, fiveSecondsInterval)}
因此,如果不满足某些条件,myApp.poll将每隔五秒调用自己

2) 服务器上保存数据的端点。因此,每次调用此端点时,页面都会提供文件的当前内容/数据

更复杂的解决方案包括服务器推送技术


我理解您的意思,并使用长轮询成功地实现了它。但仅仅为了提高认识,我想知道我所建议的方法有什么错误。谢谢。“相反,如果它可以写入一个本地文件,JSP中的javascript方法将不断监视该文件的更改并用内容更新JSP,那么它就可以做到。”浏览器中的javascript无法监视本地文件系统。这将是一种安全风险。另一方面,如果您通过Java/Jsp告诉服务器为文件提供服务,可以假设您打算这样做。