我有一个包含标题和主要部分的网页。 header和main部分对我的服务器上运行的一个特定Java API进行相同的调用。第一个呼叫应建立会话并在会话中设置一个标志,以防止第二个呼叫继续进行,直到第一个呼叫完成(例如阻塞)。
当前发生的事情是标头通常首先调用,建立会话并设置标志。然后,主要部分进行通话;但是,出于某种原因,它正在建立一个全新的会话,因此它永远不会看到标志,并且两个调用都是连续运行的。这个连续运行的进程导致底层数据库出现问题,这是一个单独的问题。
所以我的问题是,为什么要建立两个单独的会话?为什么第二个呼叫不能识别第一个会话并使用它?
答案 0 :(得分:1)
会话通常由使用HTTP标头发送的Cookie建立。服务器要求保存会话cookie的Web浏览器通常将其用于任何后续请求:但是,对于之间发生的任何请求,会话信息将不会出现。因此,可以在两者之间创建新的会话。
此外,如果浏览器选择拒绝会话cookie,您将获得为每个请求创建的新会话。这是你无法控制的事情。
此行为通常用于HTTP流量/网页浏览,与任何特定产品(例如Tomcat)无关。