Struts2深入理解
来源:互联网 发布:淘宝店铺客服分流设置 编辑:程序博客网 时间:2024/06/04 17:46
Struts2的体系结构
一个初始化的请求到达Servlet容器后,将被传递给一个标准的过滤器链。这个过滤器包括了可选的ActionContextClearUp过滤器,当你的Struts2Web应用程序中集成SiteMesh时,将会用到这个过滤器。接下来,必须的FilterDispatcher被调用时,它轮询ActionMapper以便确定这个请求是否应该调用一个action。
如果ActionMapper确定了一个Action应该被调用,那么FilterDispatcher就把控制权委派给ActionProxy,ActionProxy询问框架的配置文件管理器(它从struts.xml文件中读取配置信息)。接下来,ActionProxy创建一个实现了命令模式的ActionInvocation。ActionInvocation在调用action之前会依次调用所有配置的拦截器。
一旦action执行返回,ActionInvocation就要查找这个action的结果码所对应的result(action的结果码和result的映射在struts.xml文件中配置),然后执行这个result。通常情况下result会调用JSP或FreeMarker模板来呈现页面(但不总是这样,例如result也可以是一个Action链)。当呈现页面时,模板可以使用框架提供的Struts标签。其中一些组件可以和ActionMapper一起工作来为后面的请求呈现正确的URL。
拦截器被再次执行(顺序和开始相反),最后响应被返回给在web.xml中配置的这些过滤器。如果已经设置了ActionContextClearUp过滤器,那么FilterDispatcher就不会清理ThreadLocal中的ActionContext信息:如果没有设置ActionContextClearUp过滤器,FilterDispatcher会清理掉所有的ThreadLocal。
Struts2框架的组成部分
1.ActionMapper和ActionMapping
org.apache.struts2.dispatcher.mapper.ActionMapper接口在HTTP请求和action调用请求之间提供了一个映射。当给定一个HTTP请求时,ActionMapper根据请求的URI来查找是否有对应的action调用,如果有,则返回一个描述了action调用的ActionMapping;如果没有找到匹配的action调用请求,则返回null。
Struts2框架对该接口提供的默认实现是org.apache.struts2.dispatcher.mapper.DefaultActionMapper。
ActionMapping本质上是一个数据传输对象,它将Action类和要执行的方法详细资料收集在一起。ActionMapping由org.struts2.dispatcher.Dispatcher和各种用户接口组件使用。
- struts2.0深入理解
- Struts2深入理解
- 深入理解Struts2
- Struts2 深入理解
- Struts2深入理解
- struts2值栈深入理解
- struts2原理-深入理解(转)
- 深入理解Struts2的配置文件
- 深入理解struts2的namespace
- 深入理解Struts2----类型转换
- 深入理解Struts2----数据校验
- struts2模型驱动深入理解
- 深入理解struts2的namespace
- 深入理解Struts2拦截器(二)
- 深入理解Struts2的ognl标签
- 深入理解struts2中的值栈
- 深入理解Struts2原理之自己实现Struts2框架
- 深入理解struts2的值栈(转)
- UIPageControl改变小圆点的问题
- apache 负载均衡
- appStore上传苹果应用程序软件发布流程
- Hybrid App——混合模式移动应用
- Parcelable和Serializable的作用、效率、区别及选择
- Struts2深入理解
- android系统动态库加载分析
- hdu 1546 Idiomatic Phrases Game (spfa)
- oracel cmd 命令总结
- javascript扩展date对象格式化日期时间输出(二)
- 【工程数学】若干种解方程组算法
- MySQL InnoDB存储引擎之表(二)
- Inno setup 简单打包教程
- res里面的drawable(ldpi、mdpi、hdpi、xhdpi、xxhdpi)