亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Struts2攔截器淺析

難度中級
時長59分
學習人數
綜合評分9.77
231人評價 查看評價
9.9 內容實用
9.7 簡潔易懂
9.7 邏輯清晰
  • 自定義攔截器方法二:繼承AbstractInterCeptor類,與InterCeptor接口相比,該類提供了init和destroy方法的空實現,僅需要實現intercept方法
    查看全部
  • 自定義攔截器方法一:實現Interceptor接口
    查看全部
  • 實現攔截器: 繼承抽象攔截者 AbstractInterceptor 實現攔截方法 intercept 找著對應的人 然后調用他的方法 實現后如何才能被運用到項目中? struts2配置文件中先注冊再調用!
    查看全部
  • constant:常量
    查看全部
  • struts攔截器: 考入jar包并build path,jdk設置成1.6的 創建struts2.xml并配置action 在web.xml配置struts2(filterclass:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter),其實就是新建Filter 編寫action類,繼承ActionSupport,繼承execute方法,返回SUCCESS 將action配置到struts2.xml中 編寫interceptor,在其中的用ActionInvocation的對象調用invoke方法,可以調用action 在struts2.xml中注冊interceptor,并在action標簽中引用
    查看全部
  • 4.定義攔截器,判斷用戶是否已經登錄.此攔截器在跳轉的action中引用. 在攔截器的intercept(ActionInvocation arg0)方法中通過獲取session對象(三種方式其中一種),判斷session里面是否存在登錄成功的那個屬性,即loginsuccess,來判斷用戶是否登錄成功. 如果loginsuccess屬性不為空,則直接調用arg0的invoke()方法,此方法返回字符串與在執行action方法中返回的字符串一致.(引用了該攔截器的action),直接返回這個字符串即可. 如果判斷用戶未登錄,則直接返回"login",表示用戶需要登錄.那么在此action中也要配置一個<result name="login">login.jsp</result>,當直接訪問未登錄時,便會跳轉到登錄頁面. 攔截器與Action方法里的返回值,即return,都會與struts.xml中的result結果集進行匹配.攔截器可以在訪問Action之前,進行一些操作. 整個項目結果:通過login.jsp登錄,當登錄成功便自動跳轉到管理頁面,否則跳轉到登錄頁面. 當直接訪問跳轉到后臺的action時,如果用戶登錄了,便會跳轉到后臺管理頁面,未登錄的話則跳轉到登錄頁面.
    查看全部
  • (案例)開發權限驗證的攔截器. 效果:后臺有一個管理頁面,要求用戶必須是已登錄的用戶才能訪問頁面,如果用戶未登錄則不允許訪問此頁面. 1.首先創建一個管理頁面(manager.jsp)與登錄頁面(login.jsp). 2.創建一個專門用來跳轉到后臺管理頁面的action并配置,跳轉方法返回的字符串是對應結果集中的manager.jsp頁面,即管理頁面.因此當直接訪問此action時,就可以跳轉到后臺管理頁面(此時不需要登錄). 3.在login.jsp中需要定義表單,用于登錄,此表單提交到一個用來處理登錄信息的action來接收和處理表單的信息,在action中要獲取session對象.action中有一個處理信息的login()方法,表單提交到此action時便執行此login()方法,在方法里通過if語句判斷用戶輸入的用戶名與密碼是否正確. 如果都正確,便把登錄信息保存在Session當中,即session.put("loginsuccess",username)),login()方法直接返回SUCCESS即可. 如果用戶登錄失敗,則保存一個登錄失敗的信息進入session,即session.put("loginfalse","登錄失敗!").login()方法返回ERROR. 在strut.xml中配置此驗證登錄的action(跳轉的action已配置),當login()方法返回SUCCESS時,即登錄成功,則在<result>的路徑返回后臺管理頁面.否則返回登錄頁面,即login.jsp. <action name="" class=""> <result>web-inf/manager.jsp</result> <result name="error">/login.jsp</result> </action>
    查看全部
  • WEB-INF是Java的WEB應用的安全目錄,所謂安全就是客戶端無法訪問,只有服務端可以訪問的目錄. 在web項目的web-inf文件下的資源是不能夠直接訪問的.但可以通過action方式來訪問此資源.假設web-inf下有一個a.jsp文件,通過訪問action,在action的方法中返回一個結果集,此結果集的匹配頁面就是a.jsp. 當在<action name="">標簽中沒有設置class屬性,則會調用默認的ActionSupport類.
    查看全部
  • Struts2內置攔截器 params攔截器 負責將請求參數設置為Action屬性. staticParams攔截器 將配置文件中action元素的子元素param參數設置為Action屬性. servletConfig攔截器 將源于Servlet API的各種對象注入到Action,必須實現對應的接口. fileUpload攔截器 對文件上傳提供支持,將文件和元數據設置到對應的Action屬性. exception攔截器 捕獲異常,并且將異常映射到用戶自定義的錯誤頁面. validation攔截器 調用驗證框架進行數據驗證. 可以在Struts2的strut-code jar包下的struts-default.xml配置文件查看內建的攔截器,此文件是Struts2的核心配置文件. 此文件中的struts-default包下定義了一個名為defaultStack的攔截器棧,里面定義了很多攔截器,并且設置了默認的攔截器就是此攔截器棧. struts2在啟動的時候,會去自動加載此文件. 攔截器棧: <interceptor-stack name=""> <interceptor-ref name="攔截器1"/> <interceptor-ref name="攔截器2"/> </interceptor-stack> 首先在<interceptors>標簽下定義所有的攔截器,然后可以通過<interceptor-ref>標簽直接在Action標簽下引用,或者通過<interceptor-stack>定義攔截器棧,其下引用多個攔截器,最后在Action標簽下通過<interceptor-ref>直接引用攔截器棧即可. 可以通過<default-interceptor-ref name="">設置默認執行的攔截器,當沒有為Action手動引用攔截器,此時便會調用設置好的默認攔截器.如果為Action指定了攔截器,則默認的攔截器不會起作用. 當action加入了攔截器,用IOC的方式獲取不了session,因此當action中有攔截器時應該用ServletActionContext或ActionContext的方式獲取session.
    查看全部
  • struts架構 action運行流程
    查看全部
  • 攔截器實例(統計Action的執行時間) 在攔截器中的intercept()方法實現攔截操作. 其中System.currentTimeMillis();方法可以記錄當前時刻的時間.單位是毫秒. 在intercept()方法中的ActionInvocation參數有一個invoke()方法,此方法類似過濾器的doFilter()方法.當有下一個攔截器的時候,便會執行下一個攔截器,否則就直接執行Action.此方法返回字符串類型,此字符串是執行Action的方法時的返回值. 只要在intercept()方法中調用 invoke()方法后,如果能成功的調用了對應Action類中的方法,strtus2就會按照該方法的返回值去找對應的result, 從而忽略攔截器的返回值,如果你不調用invoke()方法,那么頁面就會跳轉到你在攔截器中指定的result對應的頁面.這個方式通常用于權限驗證, 當符合權限要求的時候才會調用invoke()方法,執行Action類中的方法,不滿足權限的直接返回錯誤頁面,這是就用到了攔截器中的返回值了.
    查看全部
  • 創建完攔截器還需要在struts.xml文件中配置攔截器并在action中引用它. 首先在包下通過<interceptors>標簽進行注冊攔截器,此標簽下還有<interceptor name="" class="">標簽,其中name屬性指定攔截器的名字,class屬性指定攔截器的全限類名.多個攔截器就有多個<interceptor>標簽來配置. 然后在action標簽下通過<interceptor-ref name="">標簽來指明執行此action時要被哪個攔截器攔截.name屬性指明要被攔截的攔截器名.
    查看全部
  • 創建攔截器 方式二(常用):繼承AbstractInterceptor類(抽象類) 1.創建一個類繼承AbstractInterceptor類. 2.只需實現此抽象類的Intercept()抽象方法即可. AbstractInterceptor抽象類本身也是實現了Interceptor接口的.它提供了init()和destroy()方法的空實現.
    查看全部
  • 創建攔截器 方式一:實現Interceptor接口 1.創建一個類,實現Interceptor接口. 2.實現init()、destroy()、intercept()方法 public String intercept(ActionInvocation ai) 方法是在進行攔截的時候會自動調用的方法,進行真正意義的攔截操作. 其中參數ActionInvocation對象包含了Action的信息與攔截器的信息,通過此參數可以獲取到Action與攔截器的信息. 同時此方法返回一個字符串,此字符串就是邏輯視圖.即return result;
    查看全部
  • 攔截器工作原理 當Struts2執行一個action的時候,會在action執行之前去執行一些攔截器(在action之前的攔截器),如果有多個攔截器會依次進行執行,最后會執行action. 調用action里業務處理的方法,方法會返回一個字符串,之后會進行視圖的匹配,返回一個result視圖.此時結果并沒有正在響應客戶端,因為在action執行完之后還要反向執行之前的攔截器,此時才會進行正在的響應. 攔截器的工作原理與過濾器的工作原理相似.
    查看全部

舉報

0/150
提交
取消
課程須知
本課程主要講解Struts2中的攔截器,小伙伴們需要對Struts2基本用法、 Action配置等相關知識有一定的基礎。
老師告訴你能學到什么?
1、攔截器概念、作用 2、Struts2內建的攔截器 3、如何自定義攔截器 4、使用攔截器實現權限控制

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!