JSP / ASP会话对象Sessions&网站用户帐户会话?他们不一样吗?

时间:2012-11-03 08:50:11

标签: asp.net jsp session session-state session-timeout

我正在修改JSP中的会话对象的概念。 ASP.Net。 我很困惑,“当创建一个实际的会话对象时?” 直到最近,我才认为它是在用户登录他的帐户时创建的,但现在我在书中读到了当用户访问您网站上的任何页面时隐式创建的内容。

那么什么时候才真正创造出来? JSP会话与网站用户帐户会话不同吗?

如果后者是正确的,当用户实际登录到他的帐户时,是否创建了第二个新会话,并且前一个会话被销毁? 例如:购物网站可以允许用户选择许多商品和商品。 '添加到我的购物车'。登录后该数据会发生什么。在销毁初始会话后是否在内部创建新会话?

如果这看起来令人困惑,那么您可以指定Session通常在真实系统中实现的方式(因为我是学生)?会话何时开始?它中存储了哪些数据?你设定的典型超时是什么?为什么?

我的研究:JSP会话是抽象概念,用户帐户会话是特定于实现的。两者都不同

1 个答案:

答案 0 :(得分:1)

会话通常由

实现
  • 生成唯一令牌,
  • 创建一个Session对象来保存会话数据并将其存储在地图中,并由唯一标记
  • 编制索引
  • 将包含此令牌的会话cookie发送到浏览器。

每次来自此浏览器的请求进入时,它都包含cookie,因此容器可以从其内部会话地图中检索适当的会话。

所以,是的,会话可以在用户通过身份验证之前存在,甚至根本不需要身份验证。当用户通过身份验证时,他会保持相同的会话。唯一的区别是您通常在会话中添加用户ID,以便将用户与会话相关联。

例如,您可以让无名用户在会话中购物并将商品添加到购物车中,并且只需要他们在需要付款后进行身份验证(以检索其存储的帐户)。或者您可以让他们将商品添加到购物车中,并且根本不对他们进行身份验证。