Java 如何在JSP中处理多个客户机?

Java 如何在JSP中处理多个客户机?,java,javascript,jsp,Java,Javascript,Jsp,我正在用JSP和servlet实现一个游戏。游戏应该支持多个玩家。 很明显,每个玩家ID都是在服务器端生成的。但是,我应该将其存储在客户端的何处,以便稍后在客户端调用servlet时(从servlet中)检索它?会话ID通常存储在cookie中 如果JSP没有一个会话库来为您处理所有这些,我会感到惊讶。会话由servlet框架自动处理,您可以通过调用servlet来检索会话 一旦您开始使用一个框架,一旦您超过了servlet(这种情况很快就会发生),会话将以不同的方式提供,并且依赖于框架。取决于

我正在用JSP和servlet实现一个游戏。游戏应该支持多个玩家。
很明显,每个玩家ID都是在服务器端生成的。但是,我应该将其存储在客户端的何处,以便稍后在客户端调用servlet时(从servlet中)检索它?

会话ID通常存储在cookie中


如果JSP没有一个会话库来为您处理所有这些,我会感到惊讶。

会话由servlet框架自动处理,您可以通过调用servlet来检索会话


一旦您开始使用一个框架,一旦您超过了servlet(这种情况很快就会发生),会话将以不同的方式提供,并且依赖于框架。

取决于您希望客户端记住播放器ID的时间长短

  • 会议期间:会议是一个好地方
  • 在他随后的拜访中:一块(永久的)饼干是个好地方
  • 会话:
    request.getSession()


    Cookie:
    request.getCookies()
    response.addCookie(Cookie)

    我可以保留HashMap并检查哪个播放器正在与我通信吗?我如何正确地测试它?我认为你并不真正理解会话是什么。如果您在会话中放置客户端ID,您已经知道客户端ID,因为它在会话中。同一浏览器上的两个不同选项卡是否会有不同的会话?@MichaelS Nope(它过去依赖于浏览器,现在仍然可能,但我对此表示怀疑)。如果您需要区分选项卡,您必须实现某种形式的“对话”范围,就像Seam一样,并为每个请求保留一个唯一的令牌,包括在链接上。我明白了。非常感谢,我会深入研究的!