session如何可以跨web应用?在线等待,谢谢各位。

lirc 2003-03-28 10:26:25
我已按如下方式试验过,但结果不行。

在一个应用中的jsp页面中设置一个session,然后通过链接转到另一个应用的jsp页面,在这个jsp页面上get session,结果为空。
...全文
62 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lirc 2003-07-21
  • 打赏
  • 举报
回复
谢谢各位,最近very忙,才有空看各位回贴。
问题已解决。
采取变通方法解决了。
跨应用主要是为了登录不同系统,在A应用中登录另个系统(B应用)时,把A应用中得到的用户信息再提交给B应用,等于在B应用中重新登录一次。
再次感谢,放分。
geyf 2003-03-28
  • 打赏
  • 举报
回复
要跨应用,就得用application对象,它的作用范围是整个web server上的所有应用,比如:
<%
out.print("<p><b>Hello World! </b>");
out.println("<b>test,refresh 2002-11-01 test managed server .....");

String paraValue = "";
paraValue = (String)application.getInitParameter("testparam");
out.println("paraValue = " + paraValue );
%>
bubblebird 2003-03-28
  • 打赏
  • 举报
回复
我试了没问题,一切ok,win2k+tomcat4.0.2 + ie5
将这句
<a href="/test2/test2.jsp">change service</a>
改成
<a href="<%=response.encodeURL("/test2/test2.jsp")%>">change service</a>
zxhong 2003-03-28
  • 打赏
  • 举报
回复
建议使用cookie
zhusuhao 2003-03-28
  • 打赏
  • 举报
回复
gz
lirc 2003-03-28
  • 打赏
  • 举报
回复
xiiiiix(小月飞)
能说的具体些么?
vcvj 2003-03-28
  • 打赏
  • 举报
回复
test1应用下的test1.jsp

<%
session.setAttribute("sessiontest", "abcdefghijklmnopqrstuvwxyz");
request.getRequestDispatcher("/test/test2.jsp").forward(request,response);
%>

<%
out.println("session: " + session.getAttribute("sessiontest"));
%>
lirc 2003-03-28
  • 打赏
  • 举报
回复
回复:vcvj(Mr.wu)
不行啊。
报错。
xiiiiix 2003-03-28
  • 打赏
  • 举报
回复
你可以用application的方法,如果你要这样,没必要用session的东西。
vcvj 2003-03-28
  • 打赏
  • 举报
回复
test1应用下的test1.jsp

<%
session.setAttribute("sessiontest", "abcdefghijklmnopqrstuvwxyz");
request.getRequestDispatcher("test2.jsp").forward(request,response);
%>

<%
out.println("session: " + session.getAttribute("sessiontest"));
%>


<a href="/test2/test2.jsp">change service</a>

test2应用下的test2.jsp
<%
out.println("session: " + session.getAttribute("sessiontest") + "session end");
%>
lirc 2003-03-28
  • 打赏
  • 举报
回复
test1应用下的test1.jsp

<%
session.setAttribute("sessiontest", "abcdefghijklmnopqrstuvwxyz");
%>

<%
out.println("session: " + session.getAttribute("sessiontest"));
%>


<a href="/test2/test2.jsp">change service</a>

test2应用下的test2.jsp
<%
out.println("session: " + session.getAttribute("sessiontest") + "session end");
%>


我先进入http://localhost:7001/test1/test1.jsp
然后点这个页面的链接进入http://localhost:7001/test2/test2.jsp
打印出的session为null。
susuny 2003-03-28
  • 打赏
  • 举报
回复
源程序在否?
LongWayToGo 2003-03-28
  • 打赏
  • 举报
回复
geyf(我在学java)
好像你的理解有点问题吧.
application只是单个应用的全局对象(这个说法很别扭....),服务器上所有的应用是同一个application?这太危险了......

bubblebird(小鳥)的方法应该可行

至于用外部存储,不是个好方法....
kofwr 2003-03-28
  • 打赏
  • 举报
回复
session只属于某一个server的serverContext下,你换了一个Context,这个context的session当然不会管理另一个context的session,这种情况你因该借助外部存储来辅助实现...
hanty 2003-03-28
  • 打赏
  • 举报
回复
不可以
lirc 2003-03-28
  • 打赏
  • 举报
回复
zxhong(红透半边天)
cookie中只能放字符串吧?
我要放对象的。
lirc 2003-03-28
  • 打赏
  • 举报
回复
geyf(我在学java)
参数testparam,是在哪里设置的?
我使用你的代码,显示的paraValue=null
lirc 2003-03-28
  • 打赏
  • 举报
回复
bubblebird(小鳥)

我使用win2000+weblogic6.1 sp1+ie6
报404错误。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧