-
攔截器工作原理查看全部
-
struts構架: 客戶端通過httpservletrequest向servlet容器,也就是tomcat提交一個請求,這個請求,會經過一些列的過濾器,如ActionContentClearUp過濾器,最終被struts核心過濾器過濾,也就是FilterDispatcher從struts2.1.3版本以后struts的核心控制器發生了變化,變成了PrepqreAndExecuteFiletr,核心過濾器過濾以后,調用訪問ActionMapping,決定是否調用某一action,如果action請求的是jsp頁面或者是其他資源,不會調用某一action,如果決定調用某一action,ActionMapping會將控制權委派給ActionProxy,也叫action代理,這是action代理會通過一個Configuration Manager也就是配置管理器對象加載struts核心配置文件,也就是struts.xml。如果在struts.xml找到需要創建的action,ActionProxy會創建一個Action Invocation實例,action Invocation包括一些列的攔截器和action,先順序執行一些列的攔截器,然后執行action處理,返回一個結果,通過result返回一個視圖或者調用另外某個action。當返回這個視圖以后,將之前執行過的攔截器反向執行一遍,然后通過response響應客戶端的請求。查看全部
-
自定義攔截器的實現方法查看全部
-
默認攔截器棧 1.在struts-default.xml中定義一個defaulStack攔截器棧,并將其指定為默認攔截器. 2.只要在定義包的過程中繼承struts-default包,那么defaultStack將是默認的攔截器. 3.當為包中的某個action顯式指定了某個攔截器,則默認攔截器不會起作用. 4攔截器棧中的各個攔截器的順序很重要.查看全部
-
fileUpload攔截器 對文件愛你上傳提供支持,將文件和元數據設置到對應的Action屬性 exception攔截器 -捕獲異常,并且將異常映射到用戶自定義的錯誤頁面 validation攔截器 調用驗證框架進行數據驗證查看全部
-
Struts2內建攔截器 params攔截器 負責將請求參數設置為Action屬性 staticParams攔截器 將配置文件中action元素的子元素param參數設置為Action屬性 servletConfig攔截器 - 將源于Servlet API的各種對象注入到Action,必須實現對應接口查看全部
-
方式二`: 繼承AbstractInterceptor類 提供了init()和destory()方法的空實現 只需要實現intercept方法即可查看全部
-
如何自定義攔截器 方式一: 實現Interceptor接口 void init() : 初始化攔截器中所需的資源 void destroy(): 釋放在init()中分配的資源 String intercept(ActionInvocation ai) throws Exception 實現攔截器功能 利用ActionInvocation參數獲得Action狀態 返回result字符作為邏輯視圖查看全部
-
攔截器的執行過程是一個遞歸的過程查看全部
-
攔截器棧 從結構上看,攔截器棧相當于多個攔截器的組合. 從功能上看,攔截器棧也是攔截器.查看全部
-
Struts2大多數核心功能是通過攔截器實現的,每個攔截器完成某項某項功能. 數據轉移,類型轉換,數據校驗 攔截器方法在Action執行之前或者之后執行.查看全部
-
攔截器棧: 注冊: 在interceptors標簽中注冊,和interceptor注冊好像 <interceptor-stack name=""> <interceptor name=""/> ........ </interceptor-stack> 配置: 和interceptor配置一樣,使用<interceptor-ref>引用 指定默認攔截器或攔截器棧 <default-interceptor-ref>標簽name屬性指定 一般先引用默認攔截器棧,再引用其他攔截器 自定義攔截器棧,在攔截器棧標簽內使用interceptor-ref引用其他攔截器或攔截器棧 如: <interceptors> <interceptor name="authInterceptor" class="com.interceptor.AuthInterceptor"></interceptor> <interceptor-stack name="myStack"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="authInterceptor"></interceptor-ref> </interceptor-stack> </interceptors>查看全部
-
攔截器:Interceptor 攔截器的創建: 實現Interceptor接口(實現該接口的init、destory、interceptor方法,init、destory方法可以空實現) 或者繼承AbstractInterceptor抽象類(該類已經空實現了init、destory方法,所以只需要實現interceptor方法即可) interceptor方法: 第一次攔截操作; 執行下一個攔截器,如果為最終攔截器,則執行Action的執行方法(invocation.invoke();,//invocation為interceptor方法的ActionInvocation參數名,invocation.invoke()返回一個string類型的返回值,該值等于action執行方法的返回值,可以使用變量result接受) 第二次攔截操作,return result; 攔截器配置: 1.注冊攔截器 <package>標簽下創建<interceptors>標簽 <interceptors>標簽內創建<interceptor>子標簽,并給其name屬性賦值 2.引用攔截器 <action>標簽下使用<interceptor-ref>標簽引用,<interceptor-ref>標簽的name屬性值對應攔截其的name查看全部
-
什么是攔截器? struts中很多功能都是通過攔截器實現的,每個攔截器完成某項功能 攔截器在action執行之前或者是在action執行之后執行 什么是攔截器棧? 從結構上看,攔截器棧相當于多個攔截器的組合 從功能上看,攔截器棧也是攔截器 攔截器棧的使用和攔截器使用完全相同 過濾器的執行流程和攔截器幾乎一樣查看全部
-
struts構架: 客戶端通過httpservletrequest向servlet容器,也就是tomcat提交一個請求,這個請求,會經過一些列的過濾器,如ActionContentClearUp過濾器,最終被struts核心過濾器過濾,也就是FilterDispatcher從struts2.1.3版本以后struts的核心控制器發生了變化,變成了PrepqreAndExecuteFiletr,核心過濾器過濾以后,調用訪問ActionMapping,決定是否調用某一action,如果action請求的是jsp頁面或者是其他資源,不會調用某一action,如果決定調用某一action,ActionMapping會將控制權委派給ActionProxy,也叫action代理,這是action代理會通過一個Configuration Manager也就是配置管理器對象加載struts核心配置文件,也就是struts.xml。如果在struts.xml找到需要創建的action,ActionProxy會創建一個Action Invocation實例,action Invocation包括一些列的攔截器和action,先順序執行一些列的攔截器,然后執行action處理,返回一個結果,通過result返回一個視圖或者調用另外某個action。當返回這個視圖以后,將之前執行過的攔截器反向執行一遍,然后通過response響應客戶端的請求。查看全部
舉報
0/150
提交
取消