日期:2014-05-17  浏览次数:20887 次

redirect到另外一个应用后session丢失
从http://localhost:8080/dsf跳转到http://localhost:8080/fg,在http://localhost:8080/fg中设置完session属性,再跳转回dsf后session就没了,取相应属性都是null,这个有什么办法解决吗
session?丢失 redirect

------解决方案--------------------

引用:
从http://localhost:8080/dsf跳转到http://localhost:8080/fg,在http://localhost:8080/fg中设置完session属性,再跳转回dsf后session就没了,取相应属性都是null,这个有什么办法解决吗


朋友,你理解一下session是什么就不会有这样的疑问了,session及一次回话,通俗点就是说你跟这个web项目一次完整的通话,那么当你的url已经指向了别的web服务,那么也就意味着这次的回话已经结束,自然,再从别的web项目跳回来的时候session的生命周期早就结束了,又何来的数据呢,如果你非要这么用不妨试试用cookie,又或者在这两个web项目相互条转的时候将session里的东西(我猜是登陆用户名吧)传给页面以此回复session里的东西,个人愚见望采纳

------解决方案--------------------
看到这个说法感觉还是蛮简单的,不知道好用不你可以试一下
有一种较为方便的做法,就是把一个应用程序的session放到?ServletContext中,这样另外一个应用程序就可以从ServletContext中取得前一个应用程序的引用。示例代码如下,??应用程序A??
context.setAttribute("appA",?session);??应用程序B??
contextA?=?context.getContext("/appA");??
HttpSession?sessionA?=?(HttpSession)contextA.getAttribute("appA");??值得注意的是这种用法不可移植,因为根据ServletContext的JavaDoc,应用服务器可以处于安全的原因对于context.getContext("/appA");返回空值,以上做法在Weblogic?Server?8.1/?tomcat4.1x?中通过