struts2拦截器的理解
来源:互联网 发布:华为网络安全工程师 编辑:程序博客网 时间:2024/04/28 22:16
Struts2的拦截器的实现原理和过滤器的实现差不多,对你真正想执行的 execute()方法进行拦截,然后插入一些自己的逻辑。如果没有拦截器,这些要插入的逻辑就得写在你自己的 Action实现中,而且每个 Action实现都要写这些功能逻辑,这样的实现非常繁琐。而 Struts2的设计者们把这些共有的逻辑独立出来,实现成一个个拦截器,既体现了软件复用的思想,又方便程序员使用。 Struts2中提供了大量的拦截器,多个拦截器可以组成一个拦截器栈,系统为我们配置了一个默认的拦截器栈 defaultStack,具体包括那些拦截器以及他们的顺序可以在 Struts2的开发包的 struts-default.xml中找到。在每次对你的 Action的 execute()方法请求时,系统会生成一个 ActionInvocation对象,这个对象保存了 action和你所配置的所有的拦截器以及一些状态信息。比如你的应用使用的是 defaultStack,系统将会以拦截器栈配置的顺序将每个拦截器包装成一个个 InterceptorMapping(包含拦截器名字和对应的拦截器对象 )组成一个 Iterator保存在 ActionInvocation中。在执行 ActionInvocation的 invoke()方法时会对这个 Iterator进行迭代,每次取出一个 InterceptorMapping,然后执行对应 Interceptor的 intercept(ActionInVocation inv)方法,而 intercept(ActionInInvocation inv)方法又包含当前的 ActionInInvcation对象作为参数,而在每个拦截器中又会调用 inv的 invoke()方法,这样就会进入下一个拦截器执行了,这样直到最后一个拦截器执行完,然后执行 Action的 execute()方法 (假设你没有配置访问方法,默认执行 Action的 execute()方法 )。在执行完 execute()方法取得了 result后又以相反的顺序走出拦截器栈,这时可以做些清理工作。最后系统得到了一个 result,然后根据 result的类型做进一步操作。
0 0
- struts2拦截器的理解
- struts2拦截器的理解
- Struts2 ---拦截器的理解
- Struts2 拦截器 理解
- Struts2拦截器实现原理的理解
- struts2拦截器与过滤器的理解
- Struts2拦截器原理理解
- Struts2架构图解析以及拦截器的理解
- Struts2中拦截器的理解及源码分析图
- Struts2拦截器的使用心得和理解
- Struts2的拦截器
- Struts2的拦截器
- Struts2的拦截器
- struts2的拦截器
- Struts2的拦截器
- struts2的拦截器
- Struts2的拦截器
- Struts2的拦截器
- 文章标题
- Java的多线程之线程安全的集合
- 设计模式 状态模式 以自动售货机为例
- HDU 5036 (STL之bitset)
- POJ_3281_Dining
- struts2拦截器的理解
- 第一行代码笔记之五数据持久化
- Android中AIDL的使用的案例
- Jquery前端封装--DOM加载
- 关于dubbo的理解
- c# 关键字学习_2 sealed
- MarkDown简介
- webservice实例
- mongodb分片环境搭建启动mongos报错