一、拦截器相关知识

1、Struts2框架剖析

5、Struts2自定义拦截器

Holly版本生活案例:

影视公司(拍电影)    ActionMapper

传媒公司(包装明星) ActionMapping

明星                        Action

经纪人                     ActionProxy(代理对象)

小工所在单位             ActionInvocation

小工                        Interceptor(拦截器)

递归==99归一

5、Struts2自定义拦截器

2、struts2工作原理

5、Struts2自定义拦截器

3、拦截器工作原理

5、Struts2自定义拦截器

拦截器围绕着Action和Result的执行而执行。拦截器的工作原理类似递归的九九归一!

拦截器执行的三个阶段,有条件的执行周期:

(1)做一些Action执行前的预处理:拦截器可以准备、过滤、改变或者操作任何可以访问的数据,包括Action。

(2)调用ActionInvocation的invoke()方法将控制交给后续拦截器或返回结果字符串终止执行:如果拦截器决定请求的处理不应该继续,可以不调用invoke()方法,而是直接返回一个控制字符串。通估这种方式,可以停止后续的执行,并且决定哪个结果呈现给客户端。

(3)做一些Action执行后的处理:此时拦截器依然可以改变可以访问的对象和数据,只是此时框架已经选择了一个结果呈现给客户端了。

 

二、自定义拦截器

1、创建如下项目结构

5、Struts2自定义拦截器

2、在src下的com.action包下创建MyTimerAction.java

 1 package com.action;
 2 
 3 import com.opensymphony.xwork2.Action;
 4 
 5 /**
 6  * 记录执行时间的Action
 7  * @author Holly老师
 8  *
 9  */
10 public class MyTimerAction implements Action {
11 
12     public String execute() throws Exception {
13         System.out.println("Action记录执行时间");
14         return SUCCESS;
15     }
16 
17 }
MyTimerAction.java

相关文章: