一个tomcat可以放多web项目,很多项目可能会出现互相调用一些接口api包括session共享的事情,接下来说说一个tomcat多个项目session共享的问题吧
首先咱们有两个web项目,a项目取名为a b项目取名为b。
打开tomcat的server.xml文件
在host这添加
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- a 和b 为两个不同的web项目 -->
<strong><span style="color:#ff0000;"> <Context path="/a" reloadable="true" crossContext="true" />
<Context path="/b" reloadable="true" crossContext="true"/></span></strong>
</Host>
a作为登录系统存放session
HttpSession session =request.getSession();
session.setAttribute("user",user.getUsername());
ServletContext ContextA =session.getServletContext();
ContextA.setAttribute("session", session);
b项目获取a项目的session
HttpSession session1 =request.getSession();
ServletContext Context = session1.getServletContext();
ServletContext Context1= Context.getContext("/a");
if(Context1 !=null && !Context1.equals("")){
HttpSession sess =(HttpSession)Context1.getAttribute("session");
System.out.println(sess.getAttribute("user"));
}
这样两个项目可以共享session了