struts2拦截器(二) 自定义拦截器
来源:互联网 发布:sql server 2008免费版 编辑:程序博客网 时间:2024/06/10 18:07
拦截器是struts2的核心组件,是AOP思想的一种实现,用于实现动态拦截Action调用的功能,struts2工作流程首先接收用户发出的httprequest请求,经过过滤器传递给核心控制器。
FilterDispatcher;FilterDispatcher调用Action映射器ActionMapper,ActionMapper决定是否调用action,之后FilterDispatcher将请求转交给ActionProxy;ActionProxy通过Configuation Manager在Struts.xml中搜索被请求的action类。ActionProxy创建一个被请求的action实例,这时如果配置文件中存在与被请求的action相关的拦截器配置,则拦截器将会在action被调用前后得到执行。
拦截器栈是多个拦截器的集合,拦截器栈确定了多个拦截器执行的顺序,便于拦截器的管理。
struts2允许创建自定义拦截器,定义自定义拦截器需要实现Intercertor接口。此接口包含三个方法。
init()方法在拦截器执行之前被调用,主要用于初始化系统资源。
destory()方法用于销毁拦截器实例
interoptor()用于实现具体的拦截器操作。
实现自定义拦截器的另一个方法是继承AbstractInterceptor,使用继承AbstractInterceptor方法只需覆盖interceptor()方法即可,
使用拦截器的优点是 增加编程灵活性,是开发人员能够专注于Action编写,简化开发流程使程序更加易于测试。
FilterDispatcher;FilterDispatcher调用Action映射器ActionMapper,ActionMapper决定是否调用action,之后FilterDispatcher将请求转交给ActionProxy;ActionProxy通过Configuation Manager在Struts.xml中搜索被请求的action类。ActionProxy创建一个被请求的action实例,这时如果配置文件中存在与被请求的action相关的拦截器配置,则拦截器将会在action被调用前后得到执行。
拦截器栈是多个拦截器的集合,拦截器栈确定了多个拦截器执行的顺序,便于拦截器的管理。
<interceptors> <interceptor name= "interceptorA" class="interceptorA"> <interceptor name= "interceptorB" class="interceptorB"> <interceptor-stack name="interceptor-stack"> <interceptor-ref name="interceptorA"/> <interceptor-ref name="interceptorB"/> </interceptor-stack> </interceptors>
struts2允许创建自定义拦截器,定义自定义拦截器需要实现Intercertor接口。此接口包含三个方法。
public interface Interceptor extends Serializabled{ void init(); void destory(); String interceptor(ActionInvocation invocation) throws Exception; }
init()方法在拦截器执行之前被调用,主要用于初始化系统资源。
destory()方法用于销毁拦截器实例
interoptor()用于实现具体的拦截器操作。
实现自定义拦截器的另一个方法是继承AbstractInterceptor,使用继承AbstractInterceptor方法只需覆盖interceptor()方法即可,
public class Interceptor extends AbstractInterceptor { public static final long serialVersionUID = "1L"; public String intercept(ActionInvocation actionInvocation) throws Exception { System.out.println("Interceptor execute !"); String result = Invocation.invoke(); return result(); }
使用拦截器的优点是 增加编程灵活性,是开发人员能够专注于Action编写,简化开发流程使程序更加易于测试。
0 0
- struts2拦截器篇(二)自定义拦截器
- struts2拦截器(二) 自定义拦截器
- struts2 自定义拦截器
- Struts2自定义拦截器
- Struts2自定义拦截器
- struts2自定义拦截器
- Struts2自定义拦截器
- Struts2自定义拦截器
- Struts2自定义拦截器
- Struts2自定义拦截器
- struts2自定义拦截器
- Struts2---自定义拦截器
- struts2自定义拦截器
- struts2自定义拦截器
- Struts2自定义拦截器
- struts2自定义拦截器
- struts2自定义拦截器
- struts2自定义拦截器
- jzoj4467 数字方阵
- Eclipse安装后jdk和tomacat与以前项目不匹配解决办法
- Servlet中转发和重定向的路径问题以及表单提交路径问题
- Android动态加载技术 简单易懂的介绍方式
- 哈理工OJ 2116 Maximum continuous product(思维的体操)
- struts2拦截器(二) 自定义拦截器
- define宏定义中的#,##,@#及\符号
- Stanford机器学习---第一讲. Introduction of machine learning
- MyEclipse设置统一编码格式
- 15、Java Web 路径问题
- OGNL简介
- 1104. Sum of Number Segments
- TCP/IP协议族各层的协议汇总
- python调用bat 整理