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

时间:2015-04-11 08:44:52

标签: java ruby-on-rails servlets playframework httpsession

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

具体而言,我需要一个JBoss EAP6的解决方案(没有会话范围的bean)。我找到了两个基于serlvet过滤器的实现:

你知道其他选择吗?

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

1 个答案:

答案 0 :(得分:0)

在Java EE中,会话数据在cookie中保持不变是很常见的...因为HttpSession已在所有servlet容器中实现。

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

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

有些Java EE服务器甚至有共享会话的概念。

恕我直言,用Java实现cookie持久化会话并不是很难,只是对于专业用途而言,它还不够重要。