将新数据从Java程序发送到Web浏览器

时间:2013-12-27 19:30:01

标签: java javascript

我想编写一个必须能够与Web浏览器(客户端)通信的java程序。发送数据/应答请求不是问题,但我也想向客户端发送新数据(以便他们在浏览器中看到它而无需重新加载页面)。

有哪些方法可以实现这一目标? 有没有办法监听新数据(使用JavaScript)?

2 个答案:

答案 0 :(得分:2)

我认为你所说的是服务器推送。 即服务器将数据发送到客户端而无需从客户端进行轮询。

有多种方法可以做到这一点,最好的方法之一就是通过websockets。

您可以使用许多可用于websockets的Java服务器,并具有用于异步推送的连接客户端。在客户端正常时,javascript将能够接收消息。

答案 1 :(得分:1)

您要做的事情称为反向Ajax :将数据从服务器发送到启用JavaScript的客户端(而不是常规Ajax,当客户端启动时通讯)。 a nice article on DeveloperWorks可以为您介绍这个主题。

有几种方法可以实现Reverse Ajax,它们意味着客户端组件(即JavaScript)和服务器组件(特定情况下为Java)中的一些自定义。正如WebServer所说,WebSockets是一种替代方案 - 尽管is not supported by all browsers yet - 但另一种可行的解决方案是使用Comet。如果您使用的是Tomcat,this link可能对您有帮助。