Java HttpServletRequest:等待响应

时间:2013-10-04 08:33:48

标签: java ajax java-ee servlets

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

  1. 如果有一个通过ajax / POST调用的Servlet。 Servlet将获得COM端口读取器的实例,打开COM端口并将字符发送到端口。到目前为止一切顺利。
  2. '端口阅读器'有一个事件监听器,等待从端口进入的数据,如果数据可用,它将返回此数据。
  3. 我想要做的是等待servlet的doPost中的响应,直到数据到达并将此数据作为响应发送给客户端。

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

2 个答案:

答案 0 :(得分:1)

Servlet 3.0有asynchronous support in servlets。这样,您就可以在Servlet中执行长时间运行的任务。

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

答案 1 :(得分:0)

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

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

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