jsp页面跳出框架注销-退出

jsp 退出系统(注销和退出整个系统)(退出top框架)

          退出和注销按钮都是放在top的窗口中,用

注销页面:

<tdalign="center" width="5%"><ahref="main/exit.jsp?id=1" 注销</a></td>

<tdalign="center" width="5%"><ahref="main/exit.jsp?id=2" 退出</a></td>

处理页面:

  <body>
     <%
       if(session.getAttribute("username")==null||session.getAttribute("username")==""){
        response.sendRedirect("../login/login.jsp");
         return;
      }
       else {
         if(request.getParameter("id").equals("1")){
           session.invalidate();
           out.println("<script language='javascript'>alert('确定要注销吗?');"+"window.top.location.href='../login/login.jsp';</script>");
          }
        // out.println("<scriptlanguage='javascript'>alert('确定要退出吗?');"+"window.location.href='../login/login.jsp';</script>");
        else{
         session.invalidate();
        out.print("<scriptlanguage='javascript'>top.close();</script>");
             }
       }
      %>
</body>

这种方法只退出top的框架,左右框架都没退出,查点资料,原理方法很简单:

解决方法1:

只要在注销页面和退出加个target="_top"就可以了

         <td align="center" width="5%"><ahref="main/exit.jsp?id=1" target="_top">注销</a></td>
         <tdalign="center" width="5%"><ahref="main/exit.jsp?id=2" targer="_top">退出</a></td>

这样它会先在另一个窗口跳出脚本提示!

而退出整个系统脚本上有点问题

<body>
     <%
       if(session.getAttribute("username")==null||session.getAttribute("username")==""){
        response.sendRedirect("../login/login.jsp");
         return;
      }
       else {
         if(request.getParameter("id").equals("1")){
           session.invalidate();
            out.println("<scriptlanguage='javascript'>alert('确定要注销吗?');"+"window.top.location.href='../login/login.jsp';</script>");
          }
        // out.println("<scriptlanguage='javascript'>alert('确定要退出吗?');"+"window.location.href='../login/login.jsp';</script>");
        else{
         session.invalidate();
             %>
       
         <scriptlanguage="javascript">  
          top.opener=null;    //不过这个我暂时还不知道什么意思,应该是刷新原来的页面
          top.close();  
     </script>
        
      <%    
       }
       }
      %>
</body>

解决方法2:

   刚问了一个网友,他给我提供的一种脚本的方法,不用提交到其他页面处理,只在本页面,很不错的 !!!

    <script language="javascript">
       function exit(){
       window.open('../login/login.jsp','_top')
         }
      </script>

<input type="button" value="退出" οnclick="exit();" />

 

 

Session.Remove("SessionName ");

Session.RemoveAll();

Session.Clear()

 

注销用户登录

前台:

<asp:Button ID="btnLogout" runat="server" Text="注销" onclick="btnLogout_Click"/>

后台:

 

        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Buffer = true;
            Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
            Response.Expires = 0;
            Response.CacheControl = "no-cache";

        }

        protected void btnLogout_Click(object sender, EventArgs e)
        {
            Session.Clear();
            Response.Redirect("../Login.aspx");
        }

 

 

 

asp.net 删除cookies同时注销登录禁用IE后退事件框架里处理

protected void Button1_Click(object sender,EventArgs e)  

   {  

       HttpCookie aCookie;  

       string cookieName;  

       int limit = Request.Cookies.Count;  

       for (int i = 0; i < limit; i++)  

       {  

           cookieName = Request.Cookies[i].Name;  

           aCookie = new HttpCookie(cookieName);  

           aCookie.Expires = DateTime.Now.AddDays(-1);//设置Cookie过期  

           Response.Cookies.Add(aCookie);  

       }  

       //if (Request.IsAuthenticated == false)  

       //{  

       Response.Write(" <mce:scripttype=\"text/javascript\"><!--  

 top.location.href= 'Login.aspx ';   

// --></mce:script> ");  

       Response.End();  

       //}  

 

    }

 

Response.Write(" <scripttype=\"text/javascript\"> top.location.href= 'Login.aspx ';</script> ");
        Response.End();

 

 

“如何在用户在关闭所有页面时就注销登录”,想想可以通过一个JS来实现!

当用户正常关闭,或者离开当前时会触发一个客户端事件:window.onclose();

在onclose() 这个事件中就可以弹出一个窗口注销当前的用户。

window.open(“logout.aspx”,"logout","status=no,scrollbars=no,resizable=no,width=1,height=1,left=10000,top=10000");

而有人想用document的 onUnLoad()事件,那是针对document对象的。所以页面上的任何连接都会出触发事件。

但是刚才的window.close() 方法 在刷新页面的时候也会触发,所以这个方法不大好,最后找到这样一个方法

script

window.onunload =function(){if(self.screenTop9000)alert(‘Closed.‘)}

/script

好象只有在IE里可以,其他浏览器有兼容性问题

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值