初步理解和使用Struts2拦截器的原理与实现
一、理解Struts2拦截器
1. Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现.
2. 拦截器栈(Interceptor Stack)。Struts2拦截器栈就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,Struts2拦截器链中的拦截器就会按其之前定义的顺序被调用。
二、实现Struts2拦截器原理
Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的 拦截器对象,然后串成一个列表,最后一个一个地调用列表中的拦截器
三、定义Struts2拦截器。
Struts2规定用户自定义拦截器必须实现com.opensymphony.xwork2.interceptor.Interceptor接口。该接口声明了3个方法,
<interceptor-ref name="MyInterceptorStack"></interceptor-ref>的name可以是一个单独的拦截器,不过一般我们都要对某一类处理做多次同样的拦截是可以一个一个的写,不过,为了方便,我们也可以定义自己的拦截器栈,在栈内可以interceptor-ref 来指向它的拦截器实体,当某个action请求需要这些的拦截器时,我们就可以直接使用我们自己定义的拦截器栈,
而栈内可以放置1到多个的拦截器对其过滤。