【问题标题】:Dynamically update JSP page via Servlet通过 Servlet 动态更新 JSP 页面
【发布时间】:2012-12-04 17:16:46
【问题描述】:

我是使用 Java 进行 Web 编程的新手。我有一个客户端/服务器(用 Java 编写),我希望将来自客户端的更新从服务器发送到 Web 界面以供用户查看。更新的时间是随机的,但我希望能够使用新数据动态更新网页,而无需刷新浏览器。

希望这是有道理的:

我尝试创建一个 Servlet,它观察 (implements Observer) 我的服务器(extends Observable)以进行更新(字符串),但是我不知道如何将这些动态添加到浏览器窗口。我曾尝试在doGet() 方法中使用PrintWriter out = response.getWriter(); 直接从Servlet 打印,但在Servlet 的update() 方法中response.getWriter() 不可用。

我最初的想法是使用从Server 接收观察者更新的 JSP 页面(我最终需要合并 HTML/CSS),但我不确定。

我对 Comet/PUSH 进行了一些研究,但我不确定这是否是我所需要的——也许有点矫枉过正?任何关于如何实现我所追求的建议都将不胜感激。

【问题讨论】:

  • 如果您希望在不刷新的情况下更新页面,那么您需要使用 Javascript 向您的 servlet 发送请求并获取更新的信息,然后对其进行格式化,然后将其替换或插入到页面中。如果您不关心页面明显刷新,那么您可以将其设置为以给定的时间间隔刷新。

标签: java jsp servlets dynamic updates


【解决方案1】:

执行此操作的最常见方法是让客户端轮询服务器以进行更改。在客户端使用 AJAX 请求来轮询服务器上的端点。

然后,您将需要使用 JQuery / Javascript 使用从 AJAX 请求中检索到的新数据来更新您的网页。

我建议在行器中使用 JQuery 并使用 AJAX 函数:http://api.jquery.com/jQuery.ajax/

它允许您在请求之后进行回调,并且在该回调中,您可以使用从请求中检索到的数据更新网页的内容。

【讨论】:

  • 谢谢,我试试看。
【解决方案2】:

您无法从服务器更新网页,除非重复进行轮询或推送。

如果你想要一个真正的推送,那么彗星也不过分,否则你可以在网页上使用轮询脚本。

【讨论】:

    猜你喜欢
    • 2013-02-06
    • 2014-06-23
    • 1970-01-01
    • 2012-11-26
    • 2011-08-04
    • 2016-06-28
    • 1970-01-01
    • 2012-07-20
    • 2011-07-18
    相关资源
    最近更新 更多