0

也许这个问题有点误导,但我会解释我需要什么:

  1. 如果有一个通过 ajax / POST 调用的 Servlet。Servlet 将获得一个 COM 端口读取器的实例,打开 COM 端口并向端口发送一个字符。到目前为止,一切都很好。
  2. “端口阅读器”有一个事件监听器并等待来自端口的数据,如果数据可用,它将返回此数据。

我想要做的是等待 servlet 的 doPost 中的响应,直到数据到达并将此数据作为响应发送给客户端。

有什么想法吗?提前致谢。

4

2 回答 2

1

Servlet 3.0在 servlet 中具有异步支持。这样您就可以在 Servlet 中执行长时间运行的任务。

但是,请确保您的浏览器向服务器发出的请求保持打开状态,直到将响应发送到客户端。

于 2013-10-04T09:15:06.800 回答
0

我不会尝试在 servlet 中等待某些数据,直到它可用然后将其发回。

您必须记住,servlet 是在服务器从它管理的线程池中提供的自己的线程中执行的。所以想象一下,如果很多客户端POST几乎在同一时间发送这个请求并且您的 servlet 开始等待,那么您可能会用完应用程序的线程。

我会让POST请求立即返回,并有另一个 ajaxGET请求轮询 servlet 以获取数据。您可以使用 javascript 的setInterval()来实现轮询。

于 2013-10-04T08:48:59.117 回答