iframe結構的項目,登錄頁面嵌套


參考:http://www.cnblogs.com/qixin622/p/6548076.html

在網頁編程時,我們經常需要處理,當session過期時,我們要跳到登陸頁面讓用戶登陸,由於我們可能用到IFrame框架,所以我們我登陸頁面需要顯示在整個頁面,而不是一個IFrame中,大部分的網友是用下面的代碼進行實現的。

 

    在過濾器中寫如下代碼:

 

printWriter out = response.getWriter();
out.write("<script>window.parent.location.href='login.jsp'</script>");

  

    我的實現方式是:跟普通過濾器的寫法一樣,跳到某個action,讓action決定要跳到的頁面,然后在登錄頁面寫上這么一段代碼 

<script language="JavaScript">
//判斷當前窗口是否有頂級窗口,如果有就讓當前的窗口的地址欄發生變化,
//這樣就可以讓登陸窗口顯示在整個窗口了
function loadTopWindow(){
    if (window.top!=null && window.top.document.URL!=document.URL){
        window.top.location= document.URL; 
    }
}
</script>
</head>
<!--在body的寫上onload事件要調用的方法-->
<body onload="loadTopWindow()">

兩種方式都是用js進行實現,各有優缺點

第一種方式的缺點是要Java中寫了JavaScript代碼,這樣的代碼風格不是很好,優點是編寫簡單;

第二種方式的缺點是要發送兩次請求,在登陸頁面比較大的情況下,這個方式確實不太好,好在一般的登錄頁面都比較簡單,優點是易於維護,在寫是時候,只要把這么一段代碼復制進去就可以了,所以我個人推薦使用第二種方式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM