JSP頁面設置登錄訪問權限


 

如何限制頁面必須在滿足某些條件后才能訪問?

比如下面這個例子:

 

 這是一個簡單的登錄界面,輸入用戶名和密碼后,經過后台的驗證,進入到相應的主界面

 

按照常理來說是這樣的,但是我們發現,當我們直接訪問主界面main.jsp時,卻也可以直接進入到主界面,比如:(注意URL)

這就對系統造成了很大的安全隱患 
怎么限制主界面必須在登錄之后才能訪問呢?其實也很簡單

首先,我們在后台驗證用戶正確登錄之后,跳轉到相應頁面之前,加入下面這行代碼

if (userService.valiUser(user)) {

session.setAttribute("user", user);

當用戶驗證成功,使用setAttribute方法講用戶名以實例user存放在會話之中。

然后我們新建一個islogin.jsp頁面,這個頁面不用做顯示,專門用於驗證訪問權限,如下:

 

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

<%@ page import = "com.jkxy.service.userService" %>

<%@ page import = "com.jkxy.model.userTable" %>

<%

  userTable user = (userTable)session.getAttribute("user"); if(user ==null) {

%>

<jsp:forward page="index.jsp"></jsp:forward>

<%

  }

%>

 

從會話中取出user實例,如果user實例存在,說明該頁面之前已經驗證過登錄用戶。如果不存在,那么就直接跳轉到登錄界面。

然后你在你想要添加登錄訪問權限的頁面jsp代碼中相應位置插入代碼

 

<jsp:include page="islogin.jsp"></jsp:include>

 

這樣的話,當我們直接使用url訪問main.jsp界面就不好使了

還需要注意的是,在退出時需要清除用戶痕跡,不然session中會一直存儲user實例,所以在退出時還需要有以下動作:

 

session.removeAttribute("user");


免責聲明!

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



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