总也搞不清楚的session,请大侠解答。。。。。 response.sendRedirect("/dir/abc.jsp?a=aaa&b=bbbb")这样就不会丢了。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 session是给会话,他代表整个浏览器,在当前的浏览器起作用,关掉浏览器重新启动,就不是他的范围了, 有没有放到session里,重定向也不会丢的了 你定义两个session变量就不会丢了,到其他页面要用的话就取出来 楼主的这个是两个单独的应用啊,这样的话session当然会丢了,这就好比你登录了网站A,获取了session,然后你能用这个session去访问网站B吗?对于这种情况,可以考虑SSO来解决 session 记录的是你的浏览器和服务器的一个会话,所以你如果没有关闭浏览器,而且你的网页是重定向是在同一个web服务器上面,若你没有主动清除,Session是不会丢掉的,但是如果你要重定向到另外的服务器,想要保存信息的办法:在表单中存储(前提是你转到另外一个服务器是用提交表单的方法,而不是Redirect)或者在地址栏里带上信息(很不安全) to:mxlmwl 你说到的问题发生的原因,但是有以下问题: 假设<context path="/" docBase="ROOT" />是网站a,<context path="/dir" docBase="dir1" />是网站b. 现在的情况是我访问网站a的index.jsp(localhost/index.jsp),此时a的index.jsp把请求重定向到网站b的abc.jsp(localhost/dir/abc.jsp),abc.jsp中设置session,那么session应该是网站b的session,然后我在网站b的def.jsp中取abc.jsp中设置的session此时并取不到。 总结一下,以上是两个应用是没有问题的。但是并不存在网站b取网站a的session的问题。但是现在有个问题是,path"/"是一个特殊的地址,当index.jsp把请求重定向到/dir/abc.jsp的时候,服务器是认为在访问别的应用还是访问本身。在本质一点,在这个访问过程中,服务器是建立了两个还是一个session,如果是两个,那么分别是在什么时候建立的。 <context path="/" docBase="ROOT" /> <context path="/dir" docBase="dir1" />这证明你是两个应用,这不能共用session 看来楼主没弄明白web访问的实质,实质不是通过URL来判断的,不能认为/和/dir都是在/下面,就误认为他们是同一个应用了,这只不过是设置的一个虚拟的访问地址罢了。(具体的理论性名词偶知道的不多,有点土了,呵呵)。对于服务器来说,它会判断你是否是跨域的,所以你重定向到/dir下,web服务器当然认为是在访问别的应用,如果连这个都无法判断,那还叫是服务器么,岂不存在着严重的系统漏洞。你说的/dir/abc.jsp中设置了session,然后在/dir/def.jsp中取session,不可能取不到,如果你在浏览器的同一个进程内的话。 to:Iambest 我说了,我没有想公用session。我只是想想在,/dir/def.jsp中取出/dir/abc.jsp中的session,这两个都在应用“/dir”下 to:mxlmwl “不能认为/和/dir都是在/下面,就误认为他们是同一个应用了”我从来没这样认为。我/dir/abc.jsp和/dir/def.jsp是一个应用(/dir)吧。def.jsp中取abc.jsp中session的值应该是同一应用吧。 “你说的/dir/abc.jsp中设置了session,然后在/dir/def.jsp中取session,不可能取不到,如果你在浏览器的同一个进程内的话。”这句话说的有点武断。 如果我访问localhost然后重定向到 /dir/abc.jsp,在/dir/def.jsp中是取不到的。但是我通过localhost/abc.jsp直接访问,在/dir/def.jsp中是可以取到的。 还有没有人发表意见,欢迎大家讨论,发表高见呀! 1。 “不能认为/和/dir都是在/下面,就误认为他们是同一个应用了”我从来没这样认为。看看你自己说的:但是现在有个问题是,path"/"是一个特殊的地址,当index.jsp把请求重定向到/dir/abc.jsp的时候,服务器是认为在访问别的应用还是访问本身。那你是怎样认为的呢?2。 “你说的/dir/abc.jsp中设置了session,然后在/dir/def.jsp中取session,不可能取不到,如果你在浏览器的同一个进程内的话。”这句话说的有点武断。一点都不武断,只要你能正常访问session,只要session没清空你可以举个反例来说明一下。3。如果我访问localhost然后重定向到 /dir/abc.jsp,在/dir/def.jsp中是取不到的。呵呵,没试过我怎么敢和你打保票呢,偶上午特地验证过的。我的路径是:localhost/aa.jsp,在里面重定向到/dir/abc.jsp,然后在abc.jsp中设置session,然后abc.jsp有一个链接到/dir/def.jsp,def.jsp中可以打出在abc.jsp中设置的值。这个是肯定没错的,不过为了验证,我还是特意试了一遍。如果你有不同意意见,你可以把你的过程说出来让大家都试一下就知道了。 session只能在一个<context>中有效. Struts2标签取值的问题 这是什么问题? 多个参数的传输问题; datasource使用问题 进者有分!!网站项目求建议,顺便求JSPSQLSERVER论坛源码。 获得Servlet的初始参数问题.求助 JSP连接SQL session的生命期 初学JAVA入门问题需要指教 struts2 跳转result 锚点位置的问题 各位高手,这是我运行了SERVLET后,出现的页面,帮帮忙 我的WebLogic Server 9.0启动到最后就自动be forced shutdown,根本启动不起来,怎么回事呀!
你说到的问题发生的原因,但是有以下问题:
假设<context path="/" docBase="ROOT" />是网站a,<context path="/dir" docBase="dir1" />是网站b.
现在的情况是我访问网站a的index.jsp(localhost/index.jsp),此时a的index.jsp把请求重定向到网站b的abc.jsp(localhost/dir/abc.jsp),abc.jsp中设置session,那么session应该是网站b的session,然后我在网站b的def.jsp中取abc.jsp中设置的session此时并取不到。
总结一下,以上是两个应用是没有问题的。但是并不存在网站b取网站a的session的问题。但是现在有个问题是,path"/"是一个特殊的地址,当index.jsp把请求重定向到/dir/abc.jsp的时候,服务器是认为在访问别的应用还是访问本身。在本质一点,在这个访问过程中,服务器是建立了两个还是一个session,如果是两个,那么分别是在什么时候建立的。
<context path="/dir" docBase="dir1" />这证明你是两个应用,这不能共用session
我说了,我没有想公用session。我只是想想在,/dir/def.jsp中取出/dir/abc.jsp中的session,这两个都在应用“/dir”下
“不能认为/和/dir都是在/下面,就误认为他们是同一个应用了”我从来没这样认为。我/dir/abc.jsp和/dir/def.jsp是一个应用(/dir)吧。def.jsp中取abc.jsp中session的值应该是同一应用吧。
“你说的/dir/abc.jsp中设置了session,然后在/dir/def.jsp中取session,不可能取不到,如果你在浏览器的同一个进程内的话。”这句话说的有点武断。
如果我访问localhost然后重定向到 /dir/abc.jsp,在/dir/def.jsp中是取不到的。但是我通过localhost/abc.jsp直接访问,在/dir/def.jsp中是可以取到的。
还有没有人发表意见,欢迎大家讨论,发表高见呀!
我的路径是:localhost/aa.jsp,在里面重定向到/dir/abc.jsp,然后在abc.jsp中设置session,然后abc.jsp有一个链接到/dir/def.jsp,def.jsp中可以打出在abc.jsp中设置的值。
这个是肯定没错的,不过为了验证,我还是特意试了一遍。如果你有不同意意见,你可以把你的过程说出来让大家都试一下就知道了。