我在下面使用访问App2中App1设置的会话数据。
在App1中:
ServletContext sctx = ((HttpServletRequest) request).getSession().getServletContext();
String testStr = (String) sctx.getAttribute("attr");
if(testStr == null){
testStr = "test";
sctx.setAttribute("attr", testStr);
}
在App2中
我得到如下会话值。
ServletContext sctx = ((HttpServletRequest) request).getSession().getServletContext().getContext("/app1");
String testStr = (String) sctx.getAttribute("attr");
System.out.println("the value which set in first app: " + testStr);
实际上是我的
App2 will be in cluster environment
。在这种情况下,App1也应该在群集环境中吗?My App2是一个Web应用程序,几乎没有公开Web服务,并且不包含任何UI。 App1和App2之间不得有任何直接通信。 App1必须在启动时在Application作用域中放置一些值,以后App2应该在需要时访问应用程序作用域的值。谢谢
集群环境中是否有任何问题?我的方法正确吗?
谢谢!
最佳答案
如果:
这两个应用程序都在集群环境中
会话属性中的所有内容均可序列化
您的会话将保留群集共享的一些数据存储
然后,您的会话属性应该在所有服务器上都可用。