81,091
社区成员
发帖
与我相关
我的任务
分享
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/ContextA" debug="9" reloadable="true" crossContext="true"/>
<Context path="/ContextB" debug="9" reloadable="true" crossContext="true"/>
</Host>
session.getServletContext().setAttribute("admin", session);
ServletContext ContextB = session.getServletContext();
ServletContext ContextA= ContextB.getContext("/ContextA");// 这里面传递的是 ContextA的虚拟路径
HttpSession sessionA =(HttpSession)ContextA.getAttribute("admin");
if (sessionA != null) {
try{
Object attribute = sessionA.getAttribute("user");
if(attribute!= null){
System.out.println("user: "+attribute);
session.setAttribute("user", attribute);
//TODO:已经登录跳转到首页
}
}catch(IllegalStateException e){
System.out.println("ContextA session 已经失效");
}
}
import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSessionEvent;
public class SessionCounter implements HttpSessionListener {
private static int activeSessions =0;
/* Session创建事件 */
public void sessionCreated(HttpSessionEvent se) {
}
/* Session失效事件 */
public void sessionDestroyed(HttpSessionEvent se) {
ServletContext ContextA=se.getSession().getServletContext();
ServletContext ContextB= ContextA.getContext("/ContextB");
HttpSession sessionB =(HttpSession)ContextB.getAttribute("admin");
if (sessionB != null) {
sessionB.invalidate();
}
}
}
import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSessionEvent;
public class SessionCounter implements HttpSessionListener {
private static int activeSessions =0;
/* Session创建事件 */
public void sessionCreated(HttpSessionEvent se) {
}
/* Session失效事件 */
public void sessionDestroyed(HttpSessionEvent se) {
ServletContext ContextB=se.getSession().getServletContext();
ServletContext ContextA= ContextA.getContext("/ContextA");
HttpSession sessionA =(HttpSession)ContextA.getAttribute("admin");
if (sessionA != null) {
sessionA.invalidate();
}
}
}
<listener>
<listener-class>demo.listener.SessionCounter</listener-class>
</listener>