判斷目前使用者是否有許可權訪問當頁面

來源:互聯網
上載者:User

功能 :判斷目前使用者是否有許可權訪問當頁面
    思路:讀取目前使用者的許可權(在登陸驗證是設定的)
        和標籤在jsp頁面取到的值進行比較,不匹配時跳轉到指定頁面
    總結:標籤類一般存放在web-inf/lib 
      xxxx.tld 配置 標籤類的參數定義和指定類名
       web-inf.xml 指定xxxx.tld的位置和定義名字
       <mytag:CheckPower power="manager" gotoPage="login.jsp"/>
    錯誤總結:寫標籤類的時候get/set方法漏了 ,報錯。
       寫jsp頁面時ctrl c ctrl v時 uri沒改,頁面不認。
    下步目標:標籤類進行驗證時能將驗證錯誤資訊寫入session或者request
       然後能通過jsp頁面讀取到該錯誤資訊
    
    
    ===================CheckPower.class(標籤類程式)==================================
    package com.mytld;
    
    import java.io.IOException;
    
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.tagext.TagSupport;
    
    public class CheckPower extends TagSupport {
    
     private String power;
    
     private String gotoPage;
    
     public int doEndTag() throws JspException {
     String userPower = (String) pageContext.getSession().getAttribute(
     "power");
     try {
     if (!power.equals(userPower)) {
     pageContext.forward(gotoPage);
     return super.EVAL_PAGE;
     }
     } catch (Exception e) {
     e.printStackTrace();
     }
    
     return super.EVAL_PAGE;
     // return super.SKIP_BODY ;
     // return super.SKIP_PAGE;
     }
    
     public String getGotoPage() {
     return gotoPage;
     }
    
     public void setGotoPage(String gotoPage) {
     this.gotoPage = gotoPage;
     }
    
     public String getPower() {
     return power;
     }
    
     public void setPower(String power) {
     this.power = power;
     }
    
    }
    ================manager.jsp==================================
    <%@ page pageEncoding="GBK" contentType="text/html; charset=GBK" %>
    <%@ taglib uri="/tags/struts-bean" prefix="bean" %>
    <%@ taglib uri="/tags/struts-logic" prefix="logic" %>
    <%@ taglib uri="mytag" prefix="mytag" %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
    <title>manager</title>
    </head>
    <body>
    <center>manager</center>
    <mytag:CheckPower power="manager" gotoPage="login.jsp"/>
    <logic:present name="LoginBean" scope="request">
    <bean:write name="LoginBean" property="passWord"/>
    </logic:present>
    </body>
    </html>
    
    ================mytag.tld===================
    <?xml version="1.0" encoding="Shift_JIS"?>
    <taglib>
    <tlibversion>1.2</tlibversion>
    <jspversion>1.1</jspversion>
    <shortname>mytag</shortname>
    
    <tag>
    <name>CheckPower</name>
    <tagclass>com.mytld.CheckPower</tagclass>
    <attribute>
    <name>power</name>
    <required>true</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    
    <attribute>
    <name>gotoPage</name>
    <required>true</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    
    </tag>
    
    </taglib>
    
    
    ==================web.xml(片斷)===========================
     <taglib>
     <taglib-uri>mytag</taglib-uri>
     <taglib-location>/WEB-INF/mytag.tld</taglib-location>
     </taglib>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.