2010-08-24 107 views
1

我会尽力解释我在做什么以获得最佳可能的建议/解决方案。这全部用java完成。Http会话管理/可选会话管理(Java)

我的客户端有一个基于SWING的桌面应用程序,它将使用WebStart加载。我被分配为用户帐户信息创建会话管理器。

我的朋友建议宁愿使用Http会话管理,所以我决定尝试一下。我写了一个servlet(让我们称之为SessionServlet),它根据用户配置文件创建,删除和重新分配会话。在tomcat 7中,会话不存储。我怀疑当servlet初始化时,会话被清空了。我只会在Session中获得org.apache.catalina.ASYNC_SUPPORTED

我的问题(S)是/是:

  • 如何允许Tomcat的7做会话管理?
  • 如何在Spring 3中进行会话管理?我在Spring上运行了大部分服务,我认为在Spring上进行会话管理是足够明智的。
  • 还有什么其他方法可以做到会话管理在java中,会话管理有没有设计模式? (只是好奇)。

非常感谢!

回答

2

我已经想通了,所以我会分享我的意见。

在进行Http会话管理时(特别是使用Servlet时),必须确保客户端会话管理也存在。

会发生什么情况是,当创建会话时,servlet会返回一个Cookie,其中包含由Servlet容器创建的会话的JSESSIONID值。确保客户端能够存储会话并在每次需要从服务器访问会话数据时使用它。

我没有存储从我身边的cookie,所以它看起来像会议从未创建。

希望这可以帮助别人。

+0

这是正确的。太糟糕了,我错过了这个问题。这毕竟是与Servlet API相关的,所以'servlet'标签也会存在。 – BalusC 2010-08-28 22:35:03

+0

感谢BalusC,更新。 – 2010-08-29 20:04:27

2

我可能会误解你想要对会话做什么,但会话(就servlet而言)仅在用户访问该站点时才存在。因此,用户可以获取第一页并设置会话,并且可供用户访问的每个页面使用。当用户离开该网站时,会话消失。这是您正在寻找的行为还是您正在寻找在访问该网站之间会持续存在的内容?

+0

东西将永远“永远”。即该会话可以永久存在直到它被要求销毁。 – 2010-08-24 10:35:20

+0

我认为你可能会更喜欢看饼干,这可以持续很长一段时间。 NB我对春天知之甚少。 – Jaydee 2010-08-24 10:39:24

+0

我给你+1的努力。 – 2010-08-28 22:27:21