2011-01-19 116 views
1

我正在一個MIS項目,目前我正在爲此創建一個登錄系統。 我在服務器端使用servlet,在客戶端使用jquery進行ajax調用。只允許登錄用戶訪問私人頁面

他們是通過一個Ajax調用,如果用戶的登錄狀態已經登錄首先檢查然後更改頁面位置「services.html」登錄頁面。

時services.html負載我又檢查登錄狀態,如果用戶沒有登錄 然後我使用
document.location='Login.html';

的代碼看起來像這樣改變頁面位置「的login.html」

$(document).ready(function() { 
$("#login").hide(); 
    $.post("checkLogin",function(xml) { 
    var status = $(xml).find("result").text(); 
    if (status == "yes") { 
     document.location='Login.html'; 
    } 
    else{ 
     // Do Nothing. 
    } 
}); 

現在用services.html頁面的問題是,它會檢查登錄狀態的全頁面加載到瀏覽器之後。

我不知道,以限制非登錄用戶訪問「services.html頁面任何其他的好辦法。由於這個項目相當大,我不得不創建大量類似於'services.html'的私人頁面。像'stuInfo.html'用於訪問學生信息等。

任何人都請告訴我任何好的方法。

回答

3

你應該在服務器端檢查此,而不是在客戶端。 JavaScript運行在客戶端,並且是可禁用的,可入侵的和可欺騙的。你不希望你的應用程序變得虛弱。

將所有受限制的頁面放在某個文件夾中,例如/secured然後創建其被映射上的/secured/*一個<url-pattern>並檢查登錄用戶的在doFilter()方法存在一個Filter

可以在servlet-filters tag info page中找到一個示例。

+0

謝謝....真的很有幫助.... – 2011-01-19 15:15:27

0

認證最好在應用服務器或框架級別完成。 J2EE容器和框架(如上面提到的Spring)完成了工作,因此您只需配置哪些頁面在哪裏,以及哪些頁面位於驗證區域之外。

簡單的舊servlet可以用於認證等,但請記住,當您展開應用程序時會遇到問題。使用servlet實現它的一種方法是讓所有的特權頁面都在/loggedin/services.html之後。

然後你有/的loggedIn/...它重定向到登錄頁面,如果認證PARAMS不能在會話,或請求或無論你正在做它找到定義的servlet。

希望幫助

相關問題