【发布时间】:2011-06-01 05:14:21
【问题描述】:
我正在构建一个应用程序,它从 jsp 获取一些参数并使用套接字将这些参数发送到另一台服务器。得到响应后,我必须处于连续收听模式。如何使用响应(来自另一台服务器)更新 jsp。
a.jsp --> 对 b.jsp 的请求。在 b.jsp 中,它调用初始化与另一台服务器的调用。在 b.jsp 函数中它得到响应。但是如何在jsp页面上显示。
【问题讨论】:
我正在构建一个应用程序,它从 jsp 获取一些参数并使用套接字将这些参数发送到另一台服务器。得到响应后,我必须处于连续收听模式。如何使用响应(来自另一台服务器)更新 jsp。
a.jsp --> 对 b.jsp 的请求。在 b.jsp 中,它调用初始化与另一台服务器的调用。在 b.jsp 函数中它得到响应。但是如何在jsp页面上显示。
【问题讨论】:
得到回复后,我必须在 连续收听模式。我怎样才能 用响应更新jsp(哪个 来自另一台服务器)。
这是可以做到的,但很可能在某个时间点后失败,原因可能是客户端/浏览器断开连接,或者服务器断开连接,或者中间节点断开连接。这些超时的持续时间仅在一定程度上是确定性的(但通常是几秒钟的数量级);在可靠地预测这个值之前,应该知道网络中的所有节点。
还有其他导致失败的原因 - 应用程序服务器可以配置为禁止从 servlet 容器连接到其他服务器,或者服务器可能会在怀疑线程被卡住的情况下简单地终止线程上的任何进一步处理(并且不会回应)。
如果您决定继续进行,尽管上述失败警告,那么实现这一点的机制是在 JSP 页面中实现一个循环,该循环侦听您创建的此套接字并在您发布响应给客户端时通常会这样做。
如果您希望以故障安全方式执行此操作,请使用 AJAX,因为我怀疑您不打算刷新 JSP 页面。
【讨论】:
从jsp,创建一个HttpURLConnection,获取HttpURLConnection的输入流。从输入流中读取数据并将其写入 jsp 编写器。 您可以编写自定义标签来执行此操作。或者,检查一个是否已经存在。
【讨论】: