struts2拦截器
2016-02-29 20:20
465 查看
拦截器是struts的核心组件,是AOP思想的一种实现,拦截器实现了动态拦截Action调用的功能,提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。
通常情况下,拦截器方法都是通过代理的方式来调用。用户在向web应用发送的HttpServletRequest请求经过各级过滤器传到核心控制FilterDispatcher,FilterDispatcher调用Action映射器ActionMapper.,将请求发送至Action代理ActionProxy.ActionProxy创建一个被请求的Action实例,用于处理客户端请求信息。在Action实例被调用前后存在于配置文件中的与Action相关的拦截器会被执行。
Action处于拦截器层层包围之下,拦截器调用完毕后才会调用Action方法,而后按相反顺序调用拦截器。
![](http://img.blog.csdn.net/20160229195118704)
自定义一个拦截器步骤:
1 自定义一个实现Interceptor接口(或者继承自AbstractInterceptor)的类。
2 在strutx.xml中注册上一步中定义的拦截器。
3 在需要使用的Action中引用上述定义的拦截器,为了方便也可将拦截器定义为默认的拦截器,这样在不加特殊声明的情况下所有的Action都被这个拦截器拦截。
拦截器配置:
拦截器应用:
拦截器拦截并处理用户请求,执行Action中的execute方法。通过<interceptor-ref>标签指定Action中的拦截器。
通常情况下,拦截器方法都是通过代理的方式来调用。用户在向web应用发送的HttpServletRequest请求经过各级过滤器传到核心控制FilterDispatcher,FilterDispatcher调用Action映射器ActionMapper.,将请求发送至Action代理ActionProxy.ActionProxy创建一个被请求的Action实例,用于处理客户端请求信息。在Action实例被调用前后存在于配置文件中的与Action相关的拦截器会被执行。
Action处于拦截器层层包围之下,拦截器调用完毕后才会调用Action方法,而后按相反顺序调用拦截器。
自定义一个拦截器步骤:
1 自定义一个实现Interceptor接口(或者继承自AbstractInterceptor)的类。
2 在strutx.xml中注册上一步中定义的拦截器。
3 在需要使用的Action中引用上述定义的拦截器,为了方便也可将拦截器定义为默认的拦截器,这样在不加特殊声明的情况下所有的Action都被这个拦截器拦截。
拦截器配置:
<interceptor name="interceptorName" class="interceptorClass">
拦截器应用:
拦截器拦截并处理用户请求,执行Action中的execute方法。通过<interceptor-ref>标签指定Action中的拦截器。
<package name="default" extends="struts-default"> <interceptors> <interceptor name="interceptor1" class="interceptorClass"/> <interceptor name="interceptor2" class="interceptorClass"/> <interceptor name="interceptor3" class="interceptorClass"/> <param name="paramName">paramValue1</param> </interceptor> <interceptor-stack name="myStack"> <interceptor-ref name="interceptor1"/> <interceptor-ref name="interceptor2"/> </interceptor-stack>
相关文章推荐
- Spring的xml配置文件的定义
- java中值类型和引用类型的区别
- 《Java实战开发经典》第五章5.8
- 102. Binary Tree Level Order Traversal
- 南阳ACM 题目275:队花的烦恼一 Java版
- 南阳ACM 题目275:队花的烦恼一 Java版
- 107. Binary Tree Level Order Traversal II
- Java验证辛钦大数定理
- 白话Spring(基础篇)---参数注入
- java中的匿名内部类总结
- Java中值类型和引用类型的区别
- 将java源码打成jar包
- java学习2-round和flour和字符串
- classloader类加载器——java类的加载方式
- 四种经典排序算法总结,自己Java语言实现
- java设计模式之单例模式
- eclipse下maven常用命令
- 《Java实战开发经典》第五章5.7
- Java链表
- java中的传值和传引用深刻体会