也许这个问题有点误导,但我会解释我需要什么:
- 如果有一个通过 ajax / POST 调用的 Servlet。Servlet 将获得一个 COM 端口读取器的实例,打开 COM 端口并向端口发送一个字符。到目前为止,一切都很好。
- “端口阅读器”有一个事件监听器并等待来自端口的数据,如果数据可用,它将返回此数据。
我想要做的是等待 servlet 的 doPost 中的响应,直到数据到达并将此数据作为响应发送给客户端。
有什么想法吗?提前致谢。
也许这个问题有点误导,但我会解释我需要什么:
我想要做的是等待 servlet 的 doPost 中的响应,直到数据到达并将此数据作为响应发送给客户端。
有什么想法吗?提前致谢。
Servlet 3.0在 servlet 中具有异步支持。这样您就可以在 Servlet 中执行长时间运行的任务。
但是,请确保您的浏览器向服务器发出的请求保持打开状态,直到将响应发送到客户端。
我不会尝试在 servlet 中等待某些数据,直到它可用然后将其发回。
您必须记住,servlet 是在服务器从它管理的线程池中提供的自己的线程中执行的。所以想象一下,如果很多客户端POST
几乎在同一时间发送这个请求并且您的 servlet 开始等待,那么您可能会用完应用程序的线程。
我会让POST
请求立即返回,并有另一个 ajaxGET
请求轮询 servlet 以获取数据。您可以使用 javascript 的setInterval()来实现轮询。