| A1.jsp <a href="A2.jsp""> clienk web </a>
<%
System.out.println("A1 SESSION:"+session.getId());
if(session.isNew()){
	System.out.println("A1 is new session");
	session.setAttribute("ssoSid", "hello");
}else{
	System.out.println("A1 is old session");
}
%>A2.jsp web2
<%
System.out.println("A2 SESSION:"+session.getId());
if(session.isNew()){
	System.out.println("A2 is new session");
}else{
	System.out.println("A2 is old session");
}
String ssoSid = (String)session.getAttribute("ssoSid");
System.out.println("A ssoSid:"+ssoSid);
%>B1.jsp <a href="B2.jsp""> client use </a>
<%
System.out.println("B1 SESSION:"+session.getId());
if(session.isNew()){
	System.out.println("B1 is new session");
	session.setAttribute("ssoSid", "LGM");
}else{
	System.out.println("B1 is old session");
}
%>B2.jsp hello user2
<%
System.out.println("B2 SESSION:"+session.getId());
if(session.isNew()){
	System.out.println("B2 is new session");
}else{
	System.out.println("B2 is old session");
}
String ssoSid = (String)session.getAttribute("ssoSid");
System.out.println("B ssoSid:"+ssoSid);
%>在tomcat的server.xml中配置如下 server.xml配置如下 <Service name="A"> <Connector port="99".../> ...... <Engine name="A" defaultHost="localhost"> ...... <Host name="localhost" appBase="A" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="/" docBase="D:/Workspaces/A/WebRoot/" debug="0" reloadable="true" /> </Host> </Engine> </Service> <Service name="B"> <Connector port="92" .../> ...... <Engine name="B" defaultHost="localhost"> ...... <Host name="localhost" appBase="B" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="/" docBase="D:/Workspaces/B/WebRoot/" debug="0" reloadbale="true" /> </Host> </Engine> </Service> 打开IE8或者火狐,开两个标签,分别执行 在来回切换标签的过程中,发现。 但是在server.xml中配置更改为(分别加了别名) 请问这是为什么呢。为什么加了别名TOMCAT对SESSION的管理就不一样了呢? | |
|  | tomcat会话管理是基于Context的
 <Context path=”/” docBase=”D:/Workspaces/B/WebRoot/” debug=”0″ reloadbale=”true ”  /> | 
|  | 前者是在不同的host里,因此没办共用Session。 后者是在相当的host里。后者并不是别名,只是Context Path | 
|  | 兄弟,我不这不是在同一个host里, | 
|  50分 | 这样配置多个,因为Context path=”/”,所以即使多个工程也是在/下统一管理session <Service name=”A”> …… <Context path=”/” …../> …… </Service ><Service name=”B”> …… <Context path=”/” …../> …… </Service >如果在每个工程下,这样配置,那么session的管理是A,B分别进行管理的。 <Context path=”/A” ……/> <Context path=”/B” ……/> | 
|  | 还有人能帮忙吗? | 
|  | 没人帮忙就结贴了啊。 | 
|  | 结吧
 | 
|  50分 | 你的项目既然部署了两个,而且分别部署了不同的/path路径,你可以火狐看看生成JSESSIONID是在不同的path路径饿,所以他们两个都不是共享的,除非你的两个项目都是读取/这个目录,,,但是他默认是生成项目的path下面啊,,,你大可以用火狐右键查看下 | 
|  | 以下设置,session的确是在/下统一管理,但是为什么火狐切换标签的时候,会话就是新的呢。每次在火狐切换以下内容的时候,SESSION的会话都是新的。 http://192.168.25.72:99/A1.jsp http://192.168.25.72:92/B1.jsp<Context path=”/” docBase=”D:/Workspaces/WebRoot/” debug=”0″ reloadable=”true” /> <Context path=”/” docBase=”D:/Workspaces/WebRoot/” debug=”0″ reloadbale=”true” /> | 
|  | 
 以下设置,session的确是在/下统一管理,但是为什么火狐切换标签的时候,会话就是新的呢。我一直认为既然这两个工程都在/下统一管理,切换的时候就不该是新会话啊 每次在火狐切换以下内容的时候,SESSION的会话都是新的。 <Context path=”/” docBase=”D:/Workspaces/WebRoot/” debug=”0″ reloadable=”true” /> <Context path=”/” docBase=”D:/Workspaces/WebRoot/” debug=”0″ reloadbale=”true” /> | 
 
                    


