真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用struts2攔截器如何實(shí)現(xiàn)對(duì)用戶進(jìn)行權(quán)限控制

使用struts2攔截器如何實(shí)現(xiàn)對(duì)用戶進(jìn)行權(quán)限控制?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、電白ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的電白網(wǎng)站制作公司

大多數(shù)網(wǎng)站會(huì)設(shè)置用戶權(quán)限,如過濾非法用戶,用戶不登錄時(shí)不能進(jìn)行訪問,或者設(shè)置訪問的權(quán)限,如部分內(nèi)容僅對(duì)VIP開放等等,這些權(quán)限的控制都可以用struts2中的攔截器來實(shí)現(xiàn)。

下面通過一個(gè)簡(jiǎn)單的Demo來模擬這種用戶權(quán)限控制的實(shí)現(xiàn)流程,設(shè)定三種不同身份的用戶,commen為普通用戶,VIP為會(huì)員用戶,還有一種admin為管理員。

先看一下Demo的整體結(jié)構(gòu):

使用struts2攔截器如何實(shí)現(xiàn)對(duì)用戶進(jìn)行權(quán)限控制

首先搭建struts2框架的開發(fā)環(huán)境(前面博客中有介紹),環(huán)境搭建完之后又再看一看如何配置struts.xml:

<?xml version="1.0" encoding="UTF-8" ?> 
 
 
  
   
    
    
    
     
     
    
   
   
   
   /Error.jsp 
   
   
   /WEB-INF/pages/index.jsp 
   
   
    
   /WEB-INF/pages/admin.jsp 
   
   
    
   /WEB-INF/pages/vipUser.jsp 
   
   
    
   /WEB-INF/pages/commen.jsp 
   
  
 

 其中,是全局的result,有很多時(shí)候一個(gè)可供很多使用,這時(shí)可以使用標(biāo)簽來定義全局的。執(zhí)行順序:當(dāng)一個(gè)Action返回的String沒有相應(yīng)的與之對(duì)應(yīng),Struts2就會(huì)查找全局的,所以本次模擬測(cè)試中不符合條件被攔截的請(qǐng)求都會(huì)轉(zhuǎn)到error.jsp。

Action類,不做處理,全部放行,讓攔截器處理:

public class LoginAction implements SessionAware{ 
 @SuppressWarnings("unused") 
 private String username; 
 private Map session; 
 public void setUsername(String username) { 
  this.username = username; 
  session.put("username", username); 
 } 
 public void setSession(Map session) { 
  // TODO Auto-generated method stub 
  this.session = session; 
 } 
  
 public String AdminExecute(){ 
  return "success"; 
 } 
 public String vipExecute(){ 
  return "success"; 
 } 
 public String commenExecute(){ 
  return "success"; 
 } 
 public String execute(){ 
  return "success"; 
 } 
} 

Inteceptor(攔截器類):

public class LoginAction implements SessionAware{ 
 @SuppressWarnings("unused") 
 private String username; 
 private Map session; 
 public void setUsername(String username) { 
  this.username = username; 
  session.put("username", username); 
 } 
 public void setSession(Map session) { 
  // TODO Auto-generated method stub 
  this.session = session; 
 } 
  
 public String AdminExecute(){ 
  return "success"; 
 } 
 public String vipExecute(){ 
  return "success"; 
 } 
 public String commenExecute(){ 
  return "success"; 
 } 
 public String execute(){ 
  return "success"; 
 } 
} 

 只是 模擬攔截器的實(shí)現(xiàn)思路,沒有持久層的數(shù)據(jù),這里的方法是使用invocation.getProxy().getActionName()方法來獲取struts.xml中配置的action名稱,和用戶表單提交的名稱做對(duì)比,如果輸入的用戶名是以action名開頭的,就放行,否則攔截。

登錄jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
 
 
 
  
 " rel="external nofollow" rel="external nofollow" >  
 login 
  
 
  
 

攔截后跳轉(zhuǎn)頁(yè):

 
 
你的權(quán)限不足,請(qǐng)先升級(jí)權(quán)限...

訪問資源代碼:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
 
 
 
  
  
 index 
  
 
  
 admin
vip
commen

其余admin.jsp等界面沒有內(nèi)容,只是為了區(qū)分實(shí)現(xiàn)跳轉(zhuǎn)頁(yè)面不同。

運(yùn)行結(jié)果:

使用commen角色登錄:

使用struts2攔截器如何實(shí)現(xiàn)對(duì)用戶進(jìn)行權(quán)限控制

點(diǎn)擊VIP以及admin跳轉(zhuǎn)鏈接時(shí):

使用struts2攔截器如何實(shí)現(xiàn)對(duì)用戶進(jìn)行權(quán)限控制

關(guān)于使用struts2攔截器如何實(shí)現(xiàn)對(duì)用戶進(jìn)行權(quán)限控制問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。


網(wǎng)頁(yè)標(biāo)題:使用struts2攔截器如何實(shí)現(xiàn)對(duì)用戶進(jìn)行權(quán)限控制
當(dāng)前URL:http://weahome.cn/article/giijds.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部