Struts2学习之拦截器机制
2012-02-28 20:46
260 查看
一些资料上都说Struts2框架中,拦截器是基石,许多共嫩的实现都是构建在拦截器的基础之上的,例如文件的上传与下载、国际化、类型转换和数据校验等,且Struts2还提供内建拦截器,例如timer和params等,这些拦截器可完成框架的大部分赶任务。于是对拦截器的机制进行了进一步学习和了解。
拦截是AOP(Aspect-Oriented Programming,面向切面编程)的一种实现策略。如果说面向对象编程将需求功能划分为不同的相对独立的和封装良好的类,病逝他们有着属于自己的行为,依靠继承和多态等来定义彼此的关系,那么面向切面编程则是通过去修功能从不相关的类中分离出来,使得很多类共享一个行为,一旦发生变化,不必修改很多类,只需秀给这个行为即可。Struts2拦截器体系正是应用了AOP设计哲学,可以动态拦截Action调用的对象,开发这只需要提供拦截器的实现类,然后配置在struts.xml文件中就行了。拦截器提供了一种机制,在一个Action前后执行需要的代码,可以在一个Aciton执行前执行,也可以在Action执行之后做一些响应的工作。
工作机制如下:拦截器都是通过代理的方式调用的。
1、请求到大Struts2的ServletDispatcher(Web HTTP请求的调度器),
2、Struts2查找配置文件,并根据配置实例化相对的拦截器对象,然后将这些对象串成一个列表,即拦截器栈;
3、逐个调用拦截器列表list中的拦截器。
注:每个Action都封装在拦截器中,以便于拦截器可以在Action执行之前或之后做回收操作。每个Action既可以将操作交给下面的拦截器,也可以直接退出操作,返回客户已定的视图资源。
拦截器的工作UML序列图如下:
拦截是AOP(Aspect-Oriented Programming,面向切面编程)的一种实现策略。如果说面向对象编程将需求功能划分为不同的相对独立的和封装良好的类,病逝他们有着属于自己的行为,依靠继承和多态等来定义彼此的关系,那么面向切面编程则是通过去修功能从不相关的类中分离出来,使得很多类共享一个行为,一旦发生变化,不必修改很多类,只需秀给这个行为即可。Struts2拦截器体系正是应用了AOP设计哲学,可以动态拦截Action调用的对象,开发这只需要提供拦截器的实现类,然后配置在struts.xml文件中就行了。拦截器提供了一种机制,在一个Action前后执行需要的代码,可以在一个Aciton执行前执行,也可以在Action执行之后做一些响应的工作。
工作机制如下:拦截器都是通过代理的方式调用的。
1、请求到大Struts2的ServletDispatcher(Web HTTP请求的调度器),
2、Struts2查找配置文件,并根据配置实例化相对的拦截器对象,然后将这些对象串成一个列表,即拦截器栈;
3、逐个调用拦截器列表list中的拦截器。
注:每个Action都封装在拦截器中,以便于拦截器可以在Action执行之前或之后做回收操作。每个Action既可以将操作交给下面的拦截器,也可以直接退出操作,返回客户已定的视图资源。
拦截器的工作UML序列图如下:
相关文章推荐
- Struts2学习教程之拦截器机制与自定义拦截器
- Struts2学习----------拦截器介绍
- 学习 -- Struts2拦截器
- 码农小汪-struts2学习7-拦截器
- Struts2学习(九)—拦截器之登录权限
- Struts2拦截器实现异常处理机制
- Struts2学习笔记之运行机制
- Struts2学习总结(八):拦截器
- 详解Struts2拦截器机制
- ssh学习:struts2的拦截器实现
- [原创]java WEB学习笔记70:Struts2 学习之路-- struts2拦截器源码分析,运行流程
- 框架学习之Struts2 第五节 自定义拦截器
- Struts2笔记――12.拦截器机制
- Struts2中的拦截器与过滤器学习
- struts2学习(13)——拦截器的配置
- Struts2拦截器Interceptor学习笔记
- struts2学习(6)自定义拦截器-登录验证拦截器
- 4.5.1: Struts2的拦截器机制---拦截器在Struts2中的作用
- [原创]java WEB学习笔记65:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) ModelDriven拦截器 paramter 拦截器
- 拦截器在Struts2中的作用以及Struts2工作机制