struts2自定義攔截器

題目:使用struts2自定義攔截器朴艰,完成用戶登陸才能訪問權限的實現(xiàn)

  • 在session中存放user變量表示用戶登陸酣胀,若user為空則用戶沒有登陸宅楞,反之登陸
  • 顯示提示信息(請先登錄)
  1. 定義攔截器
    在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>

注:當我們?yōu)槟硞€action添加Intercaptor時就會放棄struts2的其他的攔截器,所以我們要把自定義的攔截器放在一個一個攔截器棧中闷祥。

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

  1. 實現(xiàn)攔截器
    攔截器的java類要實現(xiàn)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";
    }
}
  1. 實現(xiàn)業(yè)務邏輯
  • 在action中添加攔截器
    <action name="Action" class="Action.Action">
            <interceptor-ref name="test"></interceptor-ref>
            <result name="success">Message.jsp</result>
    </action>
  1. 其他
  • action的實現(xiàn)
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>
    用戶狀態(tài):${user!=null?"已登陸":"未登陸"}<br>
    <a href="UserLogin.jsp">用戶登陸</a>
    <a href="UserQuit.jsp">用戶退出</a>
    <form action="<%request.getContextPath(); %>/testIntercaptor/Action">
        <input type="submit" value="登陸后的操作">
    </form>
  </body>
登陸頁面
  • 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>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末维蒙,一起剝皮案震驚了整個濱河市掰吕,隨后出現(xiàn)的幾起案子果覆,更是在濱河造成了極大的恐慌颅痊,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件局待,死亡現(xiàn)場離奇詭異斑响,居然都是意外死亡,警方通過查閱死者的電腦和手機钳榨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門舰罚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人薛耻,你說我怎么就攤上這事营罢。” “怎么了饼齿?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵饲漾,是天一觀的道長。 經常有香客問我缕溉,道長考传,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任证鸥,我火速辦了婚禮僚楞,結果婚禮上,老公的妹妹穿的比我還像新娘枉层。我一直安慰自己泉褐,他們只是感情好,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布鸟蜡。 她就那樣靜靜地躺著兴枯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪矩欠。 梳的紋絲不亂的頭發(fā)上财剖,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音癌淮,去河邊找鬼躺坟。 笑死,一個胖子當著我的面吹牛乳蓄,可吹牛的內容都是我干的咪橙。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼美侦!你這毒婦竟也來了产舞?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤菠剩,失蹤者是張志新(化名)和其女友劉穎易猫,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體具壮,經...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡准颓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了棺妓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攘已。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖怜跑,靈堂內的尸體忽然破棺而出样勃,到底是詐尸還是另有隱情,我是刑警寧澤性芬,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布峡眶,位于F島的核電站,受9級特大地震影響批旺,放射性物質發(fā)生泄漏幌陕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一汽煮、第九天 我趴在偏房一處隱蔽的房頂上張望搏熄。 院中可真熱鬧,春花似錦暇赤、人聲如沸心例。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽止后。三九已至,卻和暖如春溜腐,著一層夾襖步出監(jiān)牢的瞬間译株,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工挺益, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留歉糜,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓望众,卻偏偏與公主長得像匪补,于是被迫代替她去往敵國和親伞辛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內容

  • 概述 本文簡單介紹如何自定義一個Struts攔截器夯缺,但不涉及攔截器基礎蚤氏、原理等其他知識,僅僅只是介紹自定義攔截器的...
    小山雀閱讀 190評論 0 0
  • 詳談 Struts2 的核心概念 本文將深入探討Struts2 的核心概念踊兜,首先介紹的是Struts2 的體系結構...
    可愛傻妞是我的愛閱讀 1,117評論 0 2
  • 概述 什么是Struts2的框架Struts2是Struts1的下一代產品竿滨,是在 struts1和WebWork的...
    inke閱讀 2,249評論 0 50
  • 1.自定義攔截器 創(chuàng)建攔截器方式三種 練習,攔截除login方法之外所有方法 判斷是否是window框架本身 in...
    路人愛早茶閱讀 194評論 0 0
  • 那只貓死了润文,琥珀的眼姐呐,斑駁如虎的紋殿怜。它安靜地趴在水泥路面上典蝌,背對著它曾無數次嬉戲過的田野。 它曾見證過男孩...
    驀墨漠閱讀 90評論 0 0