我是在过滤器中处理的,但是失效时页面格局有些问题。失效时我让它跳转回login.jsp,因为页面中用到了iframe,结果login.jsp会在iframe里面出现,
请问该怎么处理?
在页面中我判断顶层框架的location是否跟当前窗口的location一样,但是不起作用?
if (top.location != window.location){       
        top.location.href = window.location.href; 
              }
盼指教!

解决方案 »

  1.   

    response.sendRedirect(basePath+"login.jsp");
      

  2.   

    这个问题我遇到过  很简单<%
    session.invalidate();}
    out.print("<script language=javascript>top.location.href='login.jsp'</script>");
    %>
      

  3.   

    写这个之前得有个判断吧,因为我是等login.jsp加载完就会执行代码的。
    parent怎么判断?当前窗体的父窗体?
      

  4.   

    在页面中我判断顶层框架的location是否跟当前窗口的location一样这个好象不用判断吧直接指定 taget为top应该就可以吧
      

  5.   

    target写哪?login.jsp?我试过了貌似没什么作用
      

  6.   

    一般都用3楼的类似方法处理楼主加在login.jsp里的代码应该会执行的,你加在哪里的?
      

  7.   

    哦我估计楼上的朋友是误会了我的意思了,
    不是跳转不回去,而是在弹出会话失效的提示框时,背后的页面是在iframe里面显示的。
    点击确定后还是可以回到登陆页面。碍于不便截图,请各位见谅。
      

  8.   

    你要的是:session失效后,整个页面先跳转到login,然后再alert?
      

  9.   

    只有不加iframe才可以。否则就会出现嵌套的问题!
      

  10.   

    if(/*url参数有alert,可以用jsp或者js判断*/) {
      alert(unescape("/*url的alert参数*/"));
    } else if (top.location != window.location) {
      top.location.href = window.location.href + "&alert=" + escape("<%=xxxxx%>"); 
    } else {
      alert("<%=xxxxx%>");
    }
      

  11.   

    //绝对无问题
    login.jsp
    <script language="javascript"> 
    if (window.top.location !== window.self.location) 

    window.top.location = window.self.location; 

    </script>
      

  12.   

    login.jsp
    <script language="javascript"> 
    if (window.top.location !== window.self.location) 

    window.top.location = window.self.location; 

    </script>