-
Struts2.1.3以后核心控制器就發(fā)生了變化,不再是以前的FilterDispatcher而是StrutsPrepareAndExcuteFilter查看全部
-
在實(shí)際應(yīng)用中,如果要使用多個(gè)攔截器,可以自定義一個(gè)攔截器棧包含多個(gè)攔截器, 在Action標(biāo)簽中使用時(shí),只需要引用該攔截器棧即可查看全部
-
WEB-INF下的資源默認(rèn)是不允許被外部直接訪問(wèn)的 可以通過(guò)創(chuàng)建一個(gè)默認(rèn)的action來(lái)訪問(wèn)WEB-INF下的頁(yè)面,此action不需要關(guān)聯(lián)Action類(lèi)查看全部
-
默認(rèn)攔截器棧: <!-- 為Action顯示引用攔截器后,默認(rèn)的攔截器defaultStack不再生效,需要手工引用。而且從順序角度去講,最好把默認(rèn)的攔截器寫(xiě)在自定義攔截器上面 --> <interceptor-ref name="defaultStack"></interceptor-ref>查看全部
-
Struts2內(nèi)置常用的攔截器: 1.params攔截器: -負(fù)責(zé)將請(qǐng)求參數(shù)設(shè)置為Action屬性 2.staticParams攔截器: -將配置文件中action元素的子元素param參數(shù)設(shè)置為Action屬性 3.servletConfig攔截器: -將源于Servlet API的各種對(duì)象注入到Action,必須實(shí)現(xiàn)對(duì)應(yīng)接口 4.fileUpload攔截器: -對(duì)文件上傳提供支持,將文件和元素設(shè)置到對(duì)應(yīng)的Action屬性,實(shí)際上內(nèi)部依然使用了Commons-FileUpload組件。 5.exception攔截器: -捕獲異常,并且將異常映射到用戶自定義的錯(cuò)誤頁(yè)面 6.validation攔截器: -調(diào)用驗(yàn)證框架進(jìn)行數(shù)據(jù)驗(yàn)證 更多的攔截器可在struts核心包的struts-default.xml中查看查看全部
-
注冊(cè)和使用攔截器: 注意:package里元素必須按照一定的順序排列: result-types interceptors default-interceptor-ref default-action-ref default-class-ref global-results global-exception-mappings action*(所有action放到最后)查看全部
-
自定義攔截器:查看全部
-
自定義攔截器: 方法一: 實(shí)現(xiàn)Interceptor接口,三個(gè)實(shí)現(xiàn)方法: 1.void init():初始化攔截器所需資源; 2.void destroy():釋放在init()中分配的資源; 3.String intercept(ActionInvocation ai)throws Exception:實(shí)現(xiàn)攔截器功能、利用ActionInvocation參數(shù)獲取Action狀態(tài)、返回result字符串作為邏輯視圖 方法二: 繼承AbstractIntercept類(lèi):提供了init()和destroy()方法的空實(shí)現(xiàn)、只需要實(shí)現(xiàn)intercept方法即可查看全部
-
攔截器: Struts2大多數(shù)核心功能是通過(guò)攔截器實(shí)現(xiàn)的,每個(gè)攔截器完成某項(xiàng)功能。 攔截器方法在Action執(zhí)行之前或者之后執(zhí)行。 攔截器棧: 從結(jié)構(gòu)上看,攔截器棧相當(dāng)于多個(gè)攔截器的組合。 在功能上看,攔截器棧也是攔截器。 攔截器的執(zhí)行過(guò)程是一個(gè)遞歸的過(guò)程,工作原理類(lèi)似于過(guò)濾器。查看全部
-
客戶端通過(guò)httpservletrequest向servlet容器,也就是tomcat提交一個(gè)請(qǐng)求,這個(gè)請(qǐng)求會(huì)經(jīng)過(guò)一些列的過(guò)濾器,如ActionContentClearUp過(guò)濾器,最終被struts核心過(guò)濾器過(guò)濾,也就是FilterDispatcher.從struts2.1.3版本以后struts的核心控制器發(fā)生了變化,變成了PrepqreAndExecuteFiletr,核心過(guò)濾器過(guò)濾以后,調(diào)用訪問(wèn)ActionMapping,決定是否調(diào)用某一action,如果用戶請(qǐng)求的是jsp頁(yè)面或者是其他資源,不會(huì)調(diào)用某一action,如果決定調(diào)用某一action,ActionMapping會(huì)將控制權(quán)委派給ActionProxy,也叫action代理,此時(shí)action代理會(huì)通過(guò)一個(gè)Configuration Manager也就是配置管理器對(duì)象加載struts核心配置文件,也就是struts.xml.如果在struts.xml找到需要?jiǎng)?chuàng)建的action,ActionProxy會(huì)創(chuàng)建一個(gè)Action Invocation實(shí)例,action Invocation包括一些列的攔截器和action,先順序執(zhí)行一些列的攔截器,然后執(zhí)行action處理,返回一個(gè)結(jié)果,通過(guò)result返回一個(gè)視圖或者調(diào)用另外某個(gè)action.當(dāng)返回這個(gè)視圖以后,將之前執(zhí)行過(guò)的攔截器反向執(zhí)行一遍,然后通過(guò)response響應(yīng)客戶端的請(qǐng)求.查看全部
-
默認(rèn)攔截器查看全部
-
Struts2架構(gòu)查看全部
-
自定義攔截器: 1.方法一:實(shí)現(xiàn)Interceptor接口 -void init():初始化攔截器所需資源 -void destroy() :釋放在init()中分配的資源 -String intercept(ActionInvocation ai)throws Exception 實(shí)現(xiàn)攔截器功能,利用ActionInvocation參數(shù)獲取Action狀態(tài),返回result字符串作為邏輯視圖。 2.方式二:繼承AbstractInterceptor類(lèi) -提供了init()和destroy() 方法的空實(shí)現(xiàn) -只需要實(shí)現(xiàn)intercept方法即可 實(shí)際開(kāi)發(fā)當(dāng)中一般會(huì)去繼承AbstractInterceptor這個(gè)父類(lèi)查看全部
-
默認(rèn)攔截器棧查看全部
-
自定義攔截器查看全部
舉報(bào)
0/150
提交
取消