这是唯一标识从Ajax到Servlet请求的客户机状态的最佳选择

Which is the best option for uniquely identifying a client state from Ajax to Servlet request?

本文关键字:请求 客户机 状态 最佳选择 Servlet 唯一 标识 Ajax      更新时间:2023-09-26

我在后台使用java servlet制作一个在线多人象棋游戏。在前端我使用JavaScript, Ajax, Html。Client'Player请求通过ajax请求发送到servlet控制器。现在,我想知道处理客户机请求'state的最佳选项是什么。我不想用饼干。我知道URL重写是管理客户端会话的一个选项。除了这些,管理客户端会话的其他有效方法是什么?HttpSession对象是唯一标识客户端会话的好选择吗?

HttpSession反过来使用cookie来识别会话(JSESSIONID),它将在会话创建时自动设置

如果你真的不想使用cookie,那么选择基于令牌的身份验证,网上有很多教程,但它需要更多的令牌管理工作。这是现在广泛使用的

更新

快速搜索基于令牌的身份验证在谷歌给出这个,

https://auth0.com/blog/2014/01/07/angularjs-authentication-with-cookies-vs-token/

http://arjan-tijms.omnifaces.org/2014/11/header-based-stateless-token.html

http://www.javabydefault.com/2014/11/implementing-token-based-authentication.html

是使用sessionId将是一个不错的选择,您可以使用以下代码session.getId()

如果您不关心安全性,则无需担心'身份验证'机制。

例如,如果您只是想区分两个客户端,您可以简单地在每个请求中添加一个额外的参数,如clientId。

可以这样操作:

    在javascript中创建一个全局变量,如globalClientId = null;
  1. 在每次请求时,将此作为额外参数发送
  2. 当"globalClientId"为"null"时,生成16位随机数和存储它(这将只在每个页面第一次执行)

然而,与cookie相比,这种方法的一些缺点是:

  1. 只适用于一个选项卡
  2. 关闭该选项卡将丢失