1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          Struts2–自定義攔截器三種方式「建議收藏」

          來源:互聯網轉載 時間:2024-01-29 07:53:39

          實現自定義攔截器

          在實際的項目開發中,雖然 Struts2 的內建攔截器可以完成大部分的攔截任務,但是,一些與系統邏輯相關的通用功能(如權限的控制和用戶登錄控制等),則需要通過自定義攔截器實現。本節將詳細講解如何自定義攔截器。

          1.實現Interceptor接口

          在 Struts2 框架中,通常開發人員所編寫的自定義攔截器類都會直接或間接地實現 com.opensymphony.xwork2.interceptor.Interceptor 接口。Interceptor 接口中的主要代碼如下所示:

          public interface Interceptor extends Serializable{        void init();    void destroy();    String intercept(ActionInvocation invocation) throws Exception;}

          從上述代碼中可以看出,該接口共提供了以下三個方法。

          1)void init() 該方法在攔截器被創建后會立即被調用,它在攔截器的生命周期內只被調用一次??梢栽谠摲椒ㄖ袑ο嚓P資源進行必要的初始化。

          2)void destroy() 該方法與 init() 方法相對應,在攔截器實例被銷毀之前,將調用該方法釋放和攔截器相關的資源,它在攔截器的生命周期內,也只被調用一次。

          3)String intercept(ActionInvocation invocation)throws Exception

          該方法是攔截器的核心方法,用于添加真正執行攔截工作的代碼,實現具體的攔截操作,它返回一個字符串作為邏輯視圖,系統根據返回的字符串跳轉到對應的視圖資源。每攔截一個動作請求,該方法就會被調用一次。

          該方法的 ActionInvocation 參數包含了被攔截的 Action 的引用,可以通過該參數的 invoke() 方法,將控制權轉給下一個攔截器或者轉給 Action 的 execute() 方法。

          2.繼承抽象類AbstractInterceptor

          AbstractIntercepter 類實現了 Interceptor 接口,并且提供了 init() 方法和 destroy() 方法的空實現。使用時,可以直接繼承該抽象類,而不用實現那些不必要的方法。AbstractInterceptor 類中定義的方法如下所示:

          public abstract class AbstractInterceptor implements Interceptor{        public void init(){    }    public void destroy(){    }    public abstract String intercept (ActionInvocation invocation) throws Exception;}

          AbstractInterceptor 類已經實現了 Interceptor 接口的所有方法,一般情況下,只需繼承 AbstractInterceptor 類,實現 interceptor() 方法就可以創建自定義攔截器。

          需要注意的是,只有當自定義的攔截器需要打開系統資源時,才需要覆蓋 AbstractInterceptor 類的 init() 方法和 destroy() 方法。與實現 Interceptor 接口相比,繼承 AbstractInterceptor 類的方法更為簡單。

          3.繼承MethodFilterInterceptor

          MethodFilterInterceptor提供了一個doIntercept方法供我們實現攔截器功能。

          public abstract class MethodFilterInterceptor extends AbstractInterceptor {        /** * Subclasses must override to implement the interceptor logic. * * @param invocation the action invocation * @return the result of invocation * @throws Exception */    protected abstract String doIntercept(ActionInvocation invocation) throws Exception;    }

          示例:

          import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;//繼承:MethodFilterInterceptor 方法過濾攔截器//功能: 定制攔截器攔截的方法.// 定制哪些方法需要攔截.// 定制哪些方法不需要攔截public class MyInterceptor3 extends MethodFilterInterceptor{    @Overrideprotected String doIntercept(ActionInvocation invocation) throws Exception {    //前處理System.out.println("MyInterceptor3 的前處理!");//放行String result = invocation.invoke();//后處理System.out.println("MyInterceptor3 的后處理!");return result;}}

          146536.html

          上一篇:樹的同構
          下一篇:SEO知識

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          360搶票王還可以搶票嗎?30票搶票王還能用。你可以試試。30搶票提供自動識別驗證碼、預約提醒、自動刷票等功能。搶到火車票的成功率翻倍,幫你買一張回家的火車票??梢酝ㄟ^驗證碼自動識別,自動放票。不過我每次買票都是用12306APP,是官方的搶票軟件,不會有第三方費用。如何用360搶票王搶下鋪火車票?打開軟件后,點擊右上角的“類型”,選擇“下鋪火車票”。30搶票王是360推出的全新搶票工具。是在常用...

          要流暢的看VR電腦配置,越高越好。目前VR主要針對要求高的顯卡(與成像相關)。目前很多VR廠商都為自己的VR軟件推薦了電腦配置,但是官網查??偟膩碚f只有幾個大項:四代以上,I5處理器8G,內存4G,顯卡,光學主機一般價格在5000以上??梢粤鲿呈褂肰R。根據目前VR的硬件形式,VR頭戴設備主要分為三種:1.移動終端顯示器(俗稱手機VR)移動終端顯示器(手機VR)——所謂的VR眼鏡盒,只要放在手機里...

          蘋果怎樣添加軟件源?1. 越獄后第一次打開Cydia需要很長時間才能加載,等待設備重新啟動后再打開Cydia;2。打開Cydia后,單擊下面的“軟件源”;3。單擊右上角的“編輯添加”;4。在輸入框中輸入源地址。如果輸入ACE assistant的源地址:apt.so/I4工具輸入后,單擊添加源;5。將驗證URL,并在通過后自動安裝源代碼。等待完成后,點擊“返回Cydia”6。添加之后,您可以在軟件...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>