servlet会话和两个war文件

时间:2011-07-27 18:50:20

标签: java web-applications servlets war web-container

我有兴趣问...是否有可能在一个网络服务器上保持两场战争之间的会话。 例如,有

  • A)战争文件A
  • B)战争文件B

    战争文件A

...

String aText="Hello World";
session.setAttribute("anAttribute",aText);

...

所以我的问题是......我可以像

一样调用代码
String fromAWarFile=session.getAttribute("anAttribute");

...从war文件B中获取war文件A的“Hello World”值?

赞赏任何有用的评论

3 个答案:

答案 0 :(得分:0)

不,servlet规范禁止这样做。所有WAR必须是自包含的。也许门户软件可能会帮助你。您可能需要创建共享存储或使用可能支持该容器的容器功能。

答案 1 :(得分:0)

嗯,不建议在两个WAR之间使用共享会话,仍然可以通过维护公共缓存来实现。您需要创建一个HttpSession的包装类,它将包含一个API以从缓存中获取更新的信息。您可以根据自己想要更新会话的频率或基础来决定。

答案 2 :(得分:0)

我认为您正在寻找的是会话群集http://www.ibm.com/developerworks/java/library/j-jtp07294/index.html,我认为所有主要的servlet容器都支持此功能。

以下是tomcat http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html

的文档