91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

struts2自定義攔截器的示例代碼

發布時間:2020-09-22 07:28:54 來源:腳本之家 閱讀:117 作者:rainumdo 欄目:編程語言

題目:使用struts2自定義攔截器,完成用戶登陸才能訪問權限的實現

  1. 在session中存放user變量表示用戶登陸,若user為空則用戶沒有登陸,反之登陸
  2. 顯示提示信息(請先登錄)

定義攔截器

在struts.xml中定義攔截器使用標簽<Intercaptors>、<Intercapter>。

  <interceptors>
      <interceptor name="test" class="Intercaptor.Intercaptor" />
      <interceptor-stack name="testStack">
        <interceptor-ref name="defaultStack"/>
        <interceptor-ref name="test" />
      </interceptor-stack>
  </interceptors>

注:當我們為某個action添加Intercaptor時就會放棄struts2的其他的攔截器,所以我們要把自定義的攔截器放在一個一個攔截器棧中。

name屬性就是Intercaptor.Intercaptor類在服務器上的一個實例

class屬性就是這個攔截器的的類

實現攔截器

攔截器的java類要實現Intercaptor這個接口和里面的方法intercept()。我們這里攔截的條件是用戶是否登陸,也就是session中的user變量是否為空。

public class Intercaptor implements Interceptor{

  public void destroy() {
  }

  public void init() {

  }

  public String intercept(ActionInvocation invocation) throws Exception {
    Object user=ActionContext.getContext().getSession().get("user");
    if(user!=null){
      return invocation.invoke();
    }
    ActionContext.getContext().put("message", "請先登陸");
    return "success";
  }
}

實現業務邏輯

在action中添加攔截器

  <action name="Action" class="Action.Action">
      <interceptor-ref name="test"></interceptor-ref>
      <result name="success">Message.jsp</result>
  </action>

其他

action的實現

public class Action extends ActionSupport{
  private String message;
  
  public String getMessage() {
    return message;
  }

  public void setMessage(String message) {
    this.message = message;
  }

  public String execute() throws Exception {
    return "success";
  }
}

index.jsp

 <body>
  用戶狀態:${user!=null?"已登陸":"未登陸"}<br>
  <a href="UserLogin.jsp" rel="external nofollow" >用戶登陸</a>
  <a href="UserQuit.jsp" rel="external nofollow" >用戶退出</a>
  <form action="<%request.getContextPath(); %>/testIntercaptor/Action">
    <input type="submit" value="登陸后的操作">
  </form>
 </body>

struts2自定義攔截器的示例代碼

UserLogin.jsp

在request.getSesssion中存放user變量

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

 登陸成功
  <%
  request.getSession().setAttribute("user", "user");
  response.setHeader("refresh", "1;url=index.jsp");
  %>

UserQuit.jsp

移除request.getSesssion中user變量

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

 退出成功
  <%
  request.getSession().removeAttribute("user");
    response.setHeader("refresh", "1;url=index.jsp");
  %>

Message.jsp

簡單是輸出message和debug

 <body>
  ${message } <br/>
 <s:debug></s:debug>
 </body>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

休宁县| 三原县| 江华| 浪卡子县| 印江| 石渠县| 民县| 财经| 布拖县| 汪清县| 商洛市| 白水县| 卓资县| 栖霞市| 静乐县| 礼泉县| 北辰区| 肇庆市| 德钦县| 盐池县| 和林格尔县| 益阳市| 阳江市| 翁源县| 郓城县| 陵川县| 手机| 定西市| 麻江县| 新田县| 连江县| 安丘市| 瑞安市| 准格尔旗| 乳源| 荥经县| 安溪县| 大名县| 麻栗坡县| 许昌县| 吴忠市|