Java Tomcat 7创建多个会话

Java Tomcat 7创建多个会话,java,session,tomcat,jsessionid,Java,Session,Tomcat,Jsessionid,我有一个包含标题和主要部分的网页。头部和主要部分对我的服务器上运行的一个特定JavaAPI进行相同的调用。第一次调用应建立一个会话,并在会话中设置一个标志,以防止第二次调用继续进行,直到第一次调用完成(例如,其阻塞) 当前发生的情况是,报头通常首先进行调用,建立会话并设置标志。然后,主体部分进行调用;但是,出于某种原因,它正在建立一个全新的会话,因此它永远不会看到该标志,并且两个调用都会连续运行。此连续运行的进程会导致底层数据库出现问题,这是一个单独的问题 所以我的问题是,为什么要设立两个单独的

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

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


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

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

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


这种行为对于HTTP流量/web浏览来说是一般性的,与任何特定产品(如Tomcat)都不相关。

似乎以下帖子中的问题在某种程度上暗示了我正在经历的行为。。。这看起来很有可能。如果浏览器同时发送两个请求,那么每个请求都将获得一个新会话,因为在cookie的响应返回到浏览器之前,浏览器对这两个会话都一无所知。因此,我怀疑这一点,Mark,所以我想我只是在寻求确认。谢谢你有一个非常奇特的网页。我不明白为什么会有这样的设计,这听起来像是在自找麻烦。客户端上有两个Java脚本(或其他东西)必须调用您的API,这是对的吗?或者在同一请求中在服务器端进行调用?