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

Tomcat唯一SessionId

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

Tomcat唯一SessionId

我正在数据库表中捕获用户登录详细信息,会话ID在具有唯一约束的列中,并且正在获得唯一约束异常

您不应将Tomcat生成的会话ID作为唯一约束存储在数据库中。这是没有道理的。Tomcat的会话ID仅在所有现有活动会话中都是唯一的。Servlet规范不禁止在数月或数年后的某个时间点将过期会话的ID重新用于新会话。使用固定长度的32个字符的十六进制字符串作为会话ID,所有可能的ID都不是“无限”的。您无法阻止它在某个时候被其他客户端重用。

我不明白为什么您会在数据库生存期中长时间存储Tomcat生成的会话ID。每当过期时,您都应该将其从数据库中删除。或者您应该以不同的方式解决您的问题。由于您未说明此“解决方案”背后的功能要求,因此我无法给出更合适的答案。但是,这里有一些提示:

  • 反之亦然:在数据库中插入或从数据库中选择必要的数据,获取数据库生成的ID,并将其存储为的属性

    HttpSession
    。例如,已登录的用户ID,或仅是整个
    User
    对象。

  • 或者,如果它需要延长会话的默认生存期,例如“记住我”选项,那么您应该自己生成一个UUID(并测试它是否在数据库中尚不存在),然后在单独的cookie中使用它。



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

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

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