2015-04-25 64 views
0

我只想在提供適當的身份驗證時才進入我的頁面,但我也能夠使用頁面的URL訪問頁面。請檢查錯誤HttpSession在JSP中沒有返回null sesion?

<%@ page session="false" %> 
<% 
if(request.getSession(false)!=null) { 
    String name=(String)session.getAttribute("name"); 
    String path=(String)session.getAttribute("dp_path"); 
    String profile_id=(String)session.getAttribute("profile_id"); 

%> 

%html% 

<% 
} 
else { 
     out.println("<font color=red size=4>You are not Logged In</font><br>Please " 
      + "<a href=index.jsp>login</a> to access this page"); 
} 
%> 

我應該怎麼做才能使它正確?

回答

1

您應該檢查用戶是否已通過身份驗證。並不是說有一個會話。這兩個事實是不相關的:即使用戶未經過身份驗證,您也可以進行會話。

驗證後在會話中放入一些信息,以區分經過身份驗證的訪問者與未驗證的訪問者的會話。

+0

JB Nizet代碼:如果我和它的URL訪問的頁面不記錄,在隨後的頁面不應該被訪問,但我能夠進入page.I想,如果我輸入頁面的url,然後代碼的其他部分應該運行。 – Aayush

+0

我的回答告訴你如何去做。瞭解會話不是在用戶驗證時創建的。一旦用戶訪問JSP頁面(或明確調用getSession()),即使未經身份驗證,用戶也會立即創建會話。 –

0

嘗試以下

<% 
HttpSession session = request.getSession(); 
String name=(String)session.getAttribute("name"); 
String path=(String)session.getAttribute("dp_path"); 
String profile_id=(String)session.getAttribute("profile_id"); 

if(name!=null) { 
%> 
+0

yeahhh這工作....謝謝噸羅曼C – Aayush

+0

你應該接受答案,如果它幫助你。 –