如何在servlet中连续循环等待?

问题描述 投票:1回答:1

我正在开发基于servlet的应用程序。一种情况是客户端从数据库请求一些数据,这些数据以html的形式发送回去。客户端将修改此数据,然后将其发送回服务器。现在开始扭曲。没有一个客户端。因此,多个客户端可以请求相同的数据。所以我在做的是,当第一个客户端发出请求时,此请求存储在某个位置,以便下一个用户发出相同的请求时,将拒绝该数据。

现在,假设第一个用户获取了数据,而第二个被拒绝。现在,当第一个用户位于html页面上时,该页面允许他修改数据。我想以固定的间隔发送连续的javascript异步发布请求,以通知服务器该客户端处于活动状态。

在服务器端,我需要一个线程或一些可以在循环中等待javascript异步请求的线程,如果在固定时间内未收到该请求,则该线程将删除已保存的请求,以便将来对数据的请求将被接受。

我整天都在搜索,并查看了诸如异步servlet,ServletContext侦听器和ScheduledExecutorservice之类的内容。我不想使用cheduledExecutorService,因为我不想在应用程序启动时调用它,因为这种特殊情况只是代码的一小部分,要处理它,我不希望一直运行。我需要一些后台服务,即使服务器返回了请求的数据后,该后台服务仍可以运行。

java servlet-3.0
1个回答
0
投票

Servlet无法满足您的要求,因此您应该使用WebSockets。根据我的理解,您正在尝试从服务器推送数据,因此需要使用push架构而不是pull架构(Servlet基于pull架构)。Java具有对WebSockets的本地支持您可以找到一些有关如何在Java Web应用程序中使用WebSockets的教程。这是基本WebSockets Tutorial的链接。

希望这会有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.