保存session
java
HttpSession session=request.getSession();
session.setAttribute("logonUser",logonuser );
//session.setMaxInactiveInterval(15);
String sessionid=session.getId();
session.setAttribute("sessionid", sessionid);
ServletContext ContextA =request.getSession().getServletContext();
Map<String,HttpSession> sessions = (Map<String, HttpSession>) ContextA.getAttribute("sessions");
if(sessions ==null){
sessions = new HashMap<>();
}
sessions.put(session.getId(), session);
ContextA.setAttribute("sessions",sessions);
setLogonlog(username,request, 1);
success("登录成功");
取值
java
String sessionid = request.getParameter("sessionid");
try {
HttpSession session = request.getSession();
ServletContext ContextB = session.getServletContext();
ServletContext ContextA = ContextB.getContext("/WebappA");// 这里面传递的是 WebappA登录应用的虚拟路径
Map<String, HttpSession> sessions = (Map<String, HttpSession>) ContextA.getAttribute("sessions");
HttpSession session2 = sessions.get(request.getParameter("sessionid"));
HashMap<String, Object> logonuser = (HashMap<String, Object>) session2.getAttribute("logonUser");
System.err.println(logonuser.size());
for (String key : logonuser.keySet()) {
System.out.println("Key2: " + key + " Value: " + logonuser.get(key));
}
session.setAttribute("logonUser", logonuser);
session.setAttribute("sessionid", sessionid);
// 登录账号区分大小写
User user = userMapper.getByLoginAccountIgnoreCase((String) logonuser.get("userid"));
user.apply(user);
SessionManager.create(request).userLogon(user);
} catch (Exception e) {
log.error("平台跳转错误。。。。");
log.error(e.getMessage());
}
return "redirect:/index.html";
参考
java
WebappA:
HttpSession session = request.getSession();
session.setAttribute("userId", "test");
ServletContext ContextA =session .getServletContext();
ContextA.setAttribute("session", session );
WebappB:
HttpSession sessionB = request.getSession();
ServletContext ContextB = sessionB.getServletContext();
ServletContext ContextA= ContextB.getContext("/WebappA");// 这里面传递的是 WebappA的虚拟路径
HttpSession sessionA =(HttpSession)ContextA.getAttribute("session");
System.out.println("userId: "+sessionA.getAttribute("userId"));
`
server.xml
xml
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context crossContext="true" docBase="Plat" path="/Plat" reloadable="true" sessionCookiePath="/" />
<Context crossContext="true" docBase="SYS" path="/SYSCMS" reloadable="true" sessionCookiePath="/" />
<Context crossContext="true" docBase="sydsue" path="/sydsunew" reloadable="true" sessionCookiePath="/" />
</Host>
web.xml
csharp
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<distributable/>