1

我有一个包含标题和主要部分的网页。标题和主要部分都对我的服务器上运行的一个特定 Java API 进行相同的调用。第一个呼叫应该建立一个会话并在会话中设置一个标志,以防止第二个呼叫继续进行,直到第一个呼叫完成(例如它的阻塞)。

当前发生的是标头通常首先进行调用,建立会话并设置标志。然后,主要部分进行调用;但是,由于某种原因,它正在建立一个全新的会话,因此它永远不会看到标志,并且两个调用都连续运行。这个连续运行的过程会导致底层数据库出现问题,这是一个单独的问题。

所以我的问题是,为什么要建立两个单独的会话?为什么第二个呼叫不能识别第一个会话并使用它?

4

1 回答 1

2

会话通常由使用 HTTP 标头发送的 cookie 建立。服务器要求保存会话 cookie 的 Web 浏览器通常将其用于任何后续请求:但是,对于中间发生的任何请求,会话信息将不存在。因此,可以在两者之间创建新会话。

此外,如果浏览器选择拒绝会话 cookie,您将获得为每个请求创建的新会话。那是你无法控制的事情。

这种行为一般用于 HTTP 流量/网页浏览,与任何特定产品(例如 Tomcat)无关。

于 2013-10-17T20:29:27.243 回答