gpt4 book ai didi

java - 在异步 servlet 中用新请求替换旧请求

转载 作者:行者123 更新时间:2023-12-01 14:44:31 27 4
gpt4 key购买 nike

我编写了一个异步 servlet,将缓存对象中的更改提供给所有向该 servlet 发送请求的客户端。

通过请求,客户端可以通过包含不同的参数来获取缓存的一部分。

我只是将请求存储在 ArrayList 中,并在发生更改时迭代它们,以将响应发送回客户端。

一切都运行良好,除了现在我需要处理客户端将发送带有可能不同参数的第二个请求的情况。

发生这种情况时,我想用新请求替换我存储的旧请求。但要做到这一点,我需要知道请求是否来自同一用户。有没有办法测试请求是否来自 Servlet 3.0 的同一用户?

最佳答案

必须满足旧请求。您可以发送一个错误响应,其中包含 Connection:close header 。

要关联来自同一客户端的请求,唯一的方法是通过 cookie。您可以比较两个请求的 session ID(这是一个 Cookie)。如果任何传入请求没有 session ,您应该建立一个 session (通过 request.getSession()),然后进行重定向,以便客户端将使用 jsessionid cookie 重试该请求。

if request.getSession(false)==null
request.getSession(true);
response.sendRedirect( request.uri +"?"+ request.query )

在您的情况下,重定向是必要的,因为通常需要一段时间才能返回响应,但我们希望尽快设置 cookie。

关于java - 在异步 servlet 中用新请求替换旧请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15582162/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com