2013-08-20 78 views
0

好的..我认为这个问题是愚蠢的,但它的东西我需要这么问。将数据从Servlet推送到网页

我有一个servlet根据情况检查大约20-50台服务器的健康状况。

我试图尽可能减少时间,但仍需要15-20秒才能做出响应。

我打印的东西在控制台上,我满意的是servlet并不是stuch,但用户不能看到。

有没有什么办法可以在请求或新页面上打印数据,以便用户知道服务器没有卡住 - 我不想传递请求,因为还有一些处理要做。

我只是想打印像我在控制台。我检查了System.setOut(PrintStream),但这也只是在我通过请求调度程序后才开始数据 - 对我不利。

对不起,如果它的一个愚蠢的问题。我找不到解决我的问题的方法。任何帮助将不胜感激。提前致谢。

更新:我目前正在显示一个图片说,加载。但即使服务器崩溃的图片仍然存在。在我的情况下,它不是真正的服务器状态指示。

回答

1

我认为你所寻找的是WebSockets,https://www.google.com/search?q=websockets。 假设您的浏览器支持它,您必须更新您的javascript,然后更新您的servlet代码和要支持的容器。 Jetty支持它,我不确定其他容器。

或者,您可以将进度保存到表格或其他内容并轮询该数据。

+0

我不想使用简单的表格,因为它会增加复杂度,并进一步增加我的实际任务的开销。 尚未使用websockets - 这看起来很有希望。将更新,如果这解决了我的问题。 –

+0

我已经使用WebSockets终于和实施(不是最好的解决方案,但)适合我。谢谢Sumit。 –

+0

欢迎... – Sumit

0

有了第一个请求,您可以显示某种“请稍等”指示符的页面,并执行第二个请求(实际获取数据(例如,通过JavaScript))。

+0

更新的问题Henry。 –

0

使用javascript显示加载栏。这会告诉用户后台正在发生某些事情。

+0

我已经在做Shuhail了..抱歉忘了提及更新了我的问题。 我正在使用JS来显示一个图片,表示在我的servlet正在处理数据时加载。但即使servlet卡住或崩溃,该GIF仍在运行。我试图崩溃我的系统。 我宁愿如果我实际上可以打印服务器的名称,如果他们的结果被处理 - 稍有更多的信息。 –