当前位置: 技术问答>java相关
Session:如何跨web application使用session?或者解决方案?
来源: 互联网 发布时间:2015-05-06
本文导语: 例如一个论坛/bbs,一个社区 /club 如何不用重新登陆,共用登陆的session? 谢谢 | 我有一个解决方案,而且是成功的: (1)servlet in app1: public void doPost(javax.servlet.http.HttpServletRequest request, ...
例如一个论坛/bbs,一个社区 /club
如何不用重新登陆,共用登陆的session?
谢谢
如何不用重新登陆,共用登陆的session?
谢谢
|
我有一个解决方案,而且是成功的:
(1)servlet in app1:
public void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
throws javax.servlet.ServletException, java.io.IOException {
String s = request.getParameter("url");
HttpSession session1 = request.getSession(true);
String sid = session1.getId();
session1.putValue("test",new String("yy"));
HttpSession sharedSession = session1;
session1.putValue("session",sharedSession);
getServletConfig().getServletContext().getRequestDispatcher(s).forward(request,response);
}
(2)in app2, use jsp(如test.jsp)
如果运行成功,就可以得到app1中的session对象了,我试过的,这样就实现了session跨application使用。
(1)servlet in app1:
public void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
throws javax.servlet.ServletException, java.io.IOException {
String s = request.getParameter("url");
HttpSession session1 = request.getSession(true);
String sid = session1.getId();
session1.putValue("test",new String("yy"));
HttpSession sharedSession = session1;
session1.putValue("session",sharedSession);
getServletConfig().getServletContext().getRequestDispatcher(s).forward(request,response);
}
(2)in app2, use jsp(如test.jsp)
如果运行成功,就可以得到app1中的session对象了,我试过的,这样就实现了session跨application使用。
|
不可能,利用cookie,设置它的PATH成"/"
|
是不是概念上有问题,如果作为客户端来讲,不同的Br是不允许共用Session的,但如果作为Server群,只需要由一个cluster来实现共有就可以实现。
|
url是指app1中servlet的参数,也是app2的jsp,比如你调用时写的servlet路径:
servlet?url=test.jsp
明白了吗?
servlet?url=test.jsp
明白了吗?