【问题标题】:Tomcat 7 creating multiple sessionsTomcat 7创建多个会话
【发布时间】:2013-10-18 04:29:27
【问题描述】:

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

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

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

【问题讨论】:

  • 以下帖子中的问题似乎暗示了我正在经历的行为...stackoverflow.com/questions/2488720/…
  • 看起来很可能。如果浏览器并行发送两个请求,那么每个请求都会获得一个新会话,因为直到带有 cookie 的响应返回给浏览器,浏览器都不知道任何一个会话。
  • 这是我的怀疑,马克,所以我想我只是在寻找确认。谢谢!
  • 那里有非常奇特的网页。不明白为什么会有这样的设计,听起来像是在自找麻烦。
  • 客户端有两个 javascript(或其他东西)必须因此调用您的 API,这是否正确?还是在同一请求中的服务器端进行调用?

标签: java session tomcat jsessionid


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 2011-03-23
    • 2011-05-15
    • 2015-05-04
    • 1970-01-01
    • 2014-07-23
    • 1970-01-01
    相关资源
    最近更新 更多