栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

isNew()如何判断会话是新会话还是已在使用中?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

isNew()如何判断会话是新会话还是已在使用中?

我读到,如果客户端尚未使用会话ID进行响应,则isNew()返回true。但是这是什么意思 ?

考虑服务器当前正在处理请求。关于会话处理,有两种方案。

  • 在新的会话方案中,服务器正在为用户/客户端创建一个新的会话。(客户端可能未在请求中提供会话ID,或者可能已提供服务器认为无效的会话ID。)Servlet的应用程序代码确定需要进行会话(例如,因为它具有某些信息,它希望存储在那里),并尝试使用“如果不存在则创建”标志来获取它。Servlet基础结构意识到没有当前会话,使用新的会话ID创建一个新会话,并将其保存在会话存储区中。请求完成后,会话ID返回给客户端;例如,作为cookie或附加了会话ID的URL。

  • 在现有的会话场景中,客户端已在请求中包含一个会话ID。例如作为会话cookie或请求URL中的会话ID。Servlet基础结构会识别此ID,在其会话存储区中查找它,并(如有必要)重新创建

    HttpSession
    包含从会话存储区检索到的会话状态的对象。当Servlet的应用程序代码尝试访问该会话时,它将获取此
    HttpSession
    对象,而不是新对象。然后,会话状态可以由Servlet在处理请求时使用和更新。

在第一种情况下,

isNew()
将返回对会话对象的调用,
true
因为这是一个新会话。

在第二种情况下,

isNew()
将返回对会话对象的调用,
false
因为这不是新的会话。

如何在会话对象上调用isNew(),检查会话是新会话还是已在使用中?

Servlet基础结构知道发生了两种情况,因为它进行了会话创建或会话查找。最明显的实现

isNew()
privateboolean
HttpSession
对象中包含一个字段,并作为的结果返回该字段的值
isNew()
。该字段将由servlet基础结构根据它如何获取会话对象进行初始化。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454434.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号