哪个是从Ajax到Servlet请求唯一标识客户端状态的最佳选择?

时间:2015-05-18 06:15:28

标签: java javascript jquery ajax servlets

我正在后端使用java servlet制作在线多人棋类游戏。在 前端我使用JavaScript,Ajax,Html。 Client \ Player请求通过ajax请求发送到servlet控制器。现在,我想知道哪个是处理客户端请求\状态的最佳选择。我不想使用cookies。我知道URL重写是管理客户端会话的一个选项。除此之外,管理客户会话的另一种有效方法是什么? HttpSession对象是唯一标识客户端会话的好选择吗?

3 个答案:

答案 0 :(得分:1)

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

如果你真的不想使用cookies,那么去基于令牌的身份验证,有许多在线可用的教程,但它需要更多的工作来进行令牌管理。这已被广泛使用

更新

在Google上快速搜索基于令牌的身份验证,

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

答案 1 :(得分:0)

是的,使用sessionId将是一个很好的选择,您可以通过使用以下代码session.getId()

获得seesionis

答案 2 :(得分:0)

如果您不担心安全问题,则无需担心“身份验证”问题。机制。

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

它可以像这样工作:

  1. globalClientId = null;
  2. 等javascript中创建一个全局变量
  3. 在每次请求时,将此作为额外参数发送
  4. 如果globalClientId为null,则生成一个16位的随机数和 存储它(这将仅在每页第一次完成)
  5. 然而,与Cookies相比,此方法的一些缺点是:

    1. 仅适用于一个标签
    2. 如果该标签已关闭,则会丢失