我在Tomcat 5.5文档中找到的只有:
如果要在此应用程序中调用ServletContext.getContext()以成功返回在此虚拟主机上运行的其他Web应用程序的请求调度程序,则设置为true.在安全意识环境中设置为false(默认值),以使getContext()始终返回null.
我发现一些论坛帖子评论该设置crossContext=true
还允许在不同的Web应用程序之间共享会话对象,但我无法找到任何官方文档说明这一点.
Servlet.getContext()与不同Web应用程序之间共享会话状态的能力之间是否存在关系?
什么是crossContext
属性真的 Tomcat中吗?
您可以使用单点登录阀在Web应用程序之间共享会话.
crossContext=true
如果要在同一虚拟主机中的不同Web应用程序之间共享某些信息,则可以设置.
例如,app1会调用:
setAttribute("name", object);
另一个应用程序可以调用
getContext("/app1").getAttribute("name");
阅读信息.如果crossContext未设置为true,则getContext("/ app1")将返回null.
但是,使用crossContext既罕见又可能不安全.
来自javadoc ServletContext.getContext()
:
此方法允许servlet访问服务器各个部分的上下文,并根据需要从上下文中获取RequestDispatcher对象.给定路径必须以"/"开头,相对于服务器的文档根进行解释,并与此容器上托管的其他Web应用程序的上下文根相匹配.
因此,例如,如果要包含来自不同Web应用程序的页面,则需要将crossContext设置为true.