gpt4 book ai didi

java - 有没有成熟的基于Cookie的HttpSession实现?

转载 作者:太空宇宙 更新时间:2023-11-04 13:58:24 26 4
gpt4 key购买 nike

我想在 serlvet 容器中使用基于 cookie 的 HttpSession。所有 session 数据都应存储在 cookie 内。这在 servlet 应用程序中似乎并不常见。在 Rails (Session)Playframework (Session) ,这种 session 处理是默认的。为什么这种情况如此罕见?

具体来说,我需要一个 JBoss EAP6 的解决方案(没有 session 范围的 beans)。我找到了两种基于servet过滤器的实现:

你知道有什么替代方案吗?

(如果可能的话我不想讨论一般的利弊)

最佳答案

在 Java EE 中将 session 数据保存在 cookie 中并不常见...因为 HttpSession 已在所有 servlet 容器中实现。

在 cookie 持久 session 中,大小有限制,并且必须使用签名数据以避免 session 客户端的操纵。如果您想在 session 中保留敏感信息,则必须加密数据。所有 session 数据都会与每个请求和响应进行交换。这些限制随着 HttpSession 的出现而消失。

cookie 持久 session 的最大好处是您可以拥有一个由多个服务器组成的场,可以响应任何请求,因为 session 包含在请求中。但这可以在 Java EE 中通过在反向代理级别使用粘性 session 来完成(因为几乎每个重要的数据中心都有反向代理):反向代理知道 session 并将请求传递到保存该 session 的服务器。

一些 Java EE 服务器甚至有共享 session 的概念。

恕我直言,在 Java 中实现 cookie 持久 session 并不是非常困难,只是对于专业用途来说,它还没有被发现足够重要。

关于java - 有没有成熟的基于Cookie的HttpSession实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29575887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com