【问题标题】:Http Session Management / Alternative Session Management (in Java)Http会话管理/替代会话管理(Java)
【发布时间】:2011-04-03 02:18:51
【问题描述】:

我会尽最大努力解释我在做什么,以获得最佳可能的建议/解决方案。这都是在java中完成的。

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

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

我的问题是:

  • 如何让 Tomcat 7 进行会话管理?
  • 如何在 Spring 3 中进行会话管理?我的大部分服务都在 Spring 上运行,我认为在 Spring 上进行 Session Management 对我来说是明智的。
  • 还有什么其他方法可以在java中进行会话管理,是否有会话管理的设计模式? (只是好奇)。

谢谢一百万!

【问题讨论】:

    标签: java spring servlets session-management tomcat7


    【解决方案1】:

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

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

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

    我没有存储我身边的 cookie,所以似乎从未创建过会话。

    希望这对其他人有所帮助。

    【讨论】:

    • 没错。太糟糕了,我错过了这个问题。这毕竟是与 Servlet API 相关的,所以servlet 标签也将到位。
    【解决方案2】:

    我可能误解了您试图对会话执行的操作,但会话(就 servlet 而言)仅在用户访问站点时才存在。因此,用户获得了第一页并建立了会话,并且对用户访问的每个页面都可用。当用户离开站点时,会话消失。这是您正在寻找的行为,还是您正在寻找在访问该网站之间持续存在的行为?

    【讨论】:

    • 会“永远”存在的东西。即会话可以永远存在,直到它被要求销毁。
    • 我认为你最好看看 cookie,它可以持续很长时间。注意我对 Spring 知之甚少。
    • 我为你的努力给了你一个 +1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 2010-11-14
    • 2013-12-01
    • 2012-10-11
    • 2011-04-29
    相关资源
    最近更新 更多