【问题标题】:Spring framework, how to load session in different projectSpring框架,如何在不同的项目中加载会话
【发布时间】:2011-12-18 03:20:25
【问题描述】:

我有一个项目。在第一个项目中,我设置了会话

在我的第一个项目中,我把代码放在这里

req.getSession().setAttribute("x", name);
return "ses";

在我放在这里的第二个项目中

model.addAttribute("ses", req.getSession().getAttribute("x"));
return "oses";

但没有出现会话。

如何使用 Spring 框架让会话出现在不同的项目中?

【问题讨论】:

    标签: java spring session-variables


    【解决方案1】:

    描述一下你真正想要完成的事情会很有帮助;正如 Bozho 所说,您不能真正在应用程序之间共享会话对象。

    但是,您可以使用 JMS(或任何其他应用内通信)将数据从一个应用发送到另一个应用。一旦您在接收应用程序中拥有该数据,您仍然需要能够决定对这些数据做什么:如何将其与给定用户关联,如何将其放入该用户的会话中, 等等。

    用户信息可以在消息中传递,但是两个系统之间必须有一些共同点,一些商定的密钥,可以用来确定信息属于谁。

    一旦你有了它,剩下的就是机制了;有有趣的游戏可以玩,很容易搞砸:)

    【讨论】:

    • 感谢您的回复 :) 是的,我想我应该把它放在一个模块中 :) 感谢 Dave 先生的回复
    【解决方案2】:

    你不能。 (好吧,也许你可以设置某种会话复制,但你不应该这样做。See related question

    您应该在应用程序之间使用其他形式的通信。流程会更复杂,包括通过(简单)Web 服务交换令牌,但它比依赖服务器容器要好,因为这两个应用程序将在同一个容器中运行。

    【讨论】:

    • 感谢您的回答,所以这很复杂,所以必须使用其他形式进行通信。或者,也许我需要将我的应用程序混合在其中,好的,我明白了,感谢 Bozho 的回答:thumbup:
    • 请注意,JNDI 不是每个会话的,它是全局的。因此,您必须以某种方式根据某些会话 id 识别用户
    猜你喜欢
    • 2015-11-26
    • 2021-12-10
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多