日期:2014-05-18  浏览次数:20697 次

session取不到值???求解
现在搞公司的系统出现了一个问题:

访问系统采用URL?username=admin&password=admin这种方式访问
目前分析的情况如下:
如果我直接在浏览器中访问,会直接登录成功---我这个用户名和密码都是正确的。完毕。

但是如果我用一个HTML页面  ,里面用iframe嵌入这个链接地址进行访问这时候问题就出现了。

如果浏览器我用谷歌--火狐 都能正常访问。但是我用IE就不行了,
会抛一个空指针。。就是session中找不到user。这个session找不到user...继续看下面。。谢谢

我做了debug分析之后情况描述如下:
登录时会通过过滤器以及login方法的校验。。通过之后会把user存入到session中并转发到index.jsp
这个index.jsp  是用了一个frameset 分为top 和main 当加载这个index.jsp的时候我测试发现
在index.jsp中,session是可以取到当前user的值的(系统的代码是在JSP页面中写的java代码)。
但是当加载到top.jsp的时候(因为用的frameset嘛,会逐个加载),
用session.getAttribute()去取user的时候就取不到了.这个时候我就不懂了。。。


同样的代码   为什么用谷歌和火狐就可以取到,用IE就取不到值呢???

是iframe的问题呢??
是frame框架的问题呢??
是浏览器的问题呢???
是代码写的问题呢???

------解决方案--------------------
浏览器问题。
认成两个不同的Session了。
------解决方案--------------------
这个就是浏览器的问题!
------解决方案--------------------
跟IE的关系肯定是有的frameset是同时加载不同的页面,也就是说你甚至可以去引用其他外网资源,这就也可以认为是就类似于个新的ie窗口,所以有可能会获取不到,建议加载top.jsp时先让top.jsp到程序中走一遭,也就是说请求一遍把该获取到获取一下,再返回试试,但是要注意会不会产生新的session!