现在搞公司的系统出现了一个问题:访问系统采用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框架的问题呢??
是浏览器的问题呢???
是代码写的问题呢???

解决方案 »

  1.   

    浏览器问题。
    认成两个不同的Session了。
      

  2.   

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

  3.   

    楼主,解决了吗?我也遇见这个问题,目前还没有解决,换浏览器也不行。
    我是 <frameset rows="60,*,34" frameborder="NO" border="0" framespacing="0"> 

                <frameset rows="*" cols="270,*" framespacing="0" frameborder="NO" border="1">
          <frame id="left" name="leftFrame"  src="/Tree.jsp" scrolling="auto">-取不到值  
                  <frame src="/mainIndex.jsp" name="content" scrolling="auto">  --也取不到

        </frameset>     
      <frame name="bottomFrame" scrolling="NO" src="frame/bottom.jsp">--可以取到
    </frameset>