-
配置自定義攔截器后,默認攔截器不生效。需要手動引入。
<!--手動引用攔截器defaultStack--> <interceptor-ref?name="defaultStack"/>
查看全部 -
1.params攔截器: -負責將請求參數設置為Action屬性 2.staticParams攔截器: -將配置文件中action元素的子元素param參數設置為Action屬性 3.servletConfig攔截器: -將源于Servlet API的各種對象注入到Action,必須實現對應接口 4.fileUpload攔截器: -對文件上傳提供支持,將文件和元素設置到對應的Action屬性,實際上內部依然使用了Commons-FileUpload組件。 5.exception攔截器: -捕獲異常,并且將異常映射到用戶自定義的錯誤頁面 6.validation攔截器: -調用驗證框架進行數據驗證 更多的攔截器可在struts核心包的struts-default.xml中查看
查看全部 -
1、創建一個繼承自AbstractInterceptor類
2、實現intercept方法
3、注冊攔截器
<interceptors> ????<interceptor?name="mytimer"?class="com.interceptor.TimerInterceptor"/> </interceptors>
4、引用攔截器
<action?name="timer"?class="com.action.TimerAction"> ????<result>/index.jsp</result> ????<!--引用攔截器--> ????<interceptor-ref?name="mytimer"/> </action>
查看全部 -
Struts2大多數核心功能是通過攔截器實現的,每個攔截器完成某項功能。
?攔截器方法在Action執行之前或者之后執行。
攔截器棧: 從結構上看,攔截器棧相當于多個攔截器的組合。 在功能上看,攔截器棧也是攔截器。 攔截器的執行過程是一個遞歸的過程,工作原理類似于過濾器。
查看全部 -
方式一:實現Interceptor接口
- void init():初始化攔截器所需資源
- void destroy():釋放在init()中分配的資源
- String intercept(ActionInvocation ai) throws Exception
實現攔截器功能
利用ActionInvocation參數獲取Action狀態
返回result字符串作為邏輯視圖
方式二:繼承AbstractInterceptor類
- 提供了init()和destroy()方法的空實現
- 只需要實現intercept方法即可
查看全部 -
strust2的工作流程: 客戶端通過HttpServletRequest向Tomcat容器發送請求---->過濾器(核心控制器StrutsPrepareAndexecuteFiler)----> 核心控制器訪問ActionMapper來決定是否調用某個action(如果是jsp頁面等則不會調用action)------> 核心控制權ActionProxy(action代理)---->ConfigurationManager(配置管理器)加載struts.xml找到要調用的action---> ActionProxy(action代理)創建Action invocation實例--->調用攔截器123————》攔截器執行完后才執行action 調用action業務處理方法 同時這個方法返回一個 字符串結果--->根據字符串去匹配視圖--->再次倒序執行攔截器321 ----最后通過HttpServletRequest響應請求
查看全部 -
內建攔截器2
查看全部 -
Struts2內建攔截器
查看全部 -
方法2:繼承AbstractInterceptor類
查看全部 -
實現Interceptor接口
查看全部 -
Strust2架構
查看全部
舉報