Struts1工作原理
除了学习Struts的基础知识。建议读者还要熟知Struts较为重要的部分--工作原理,这并不是必须要学习的部分。就像很多不懂汽车内部构成原理的人照样可以驾驶汽车一样,不了解Struts的工作原理,并不影响对Struts的使用。但如果能了解Struts的工作原理,则可以更好地让Struts为自己提供服务。如果初学的读者觉得此部分有难度,可以将本节内容放在最后阅读。
通过2.1节的讲解,相信读者已经拥有驾驭Struts框架的能力,下面将从工作原理角度入手来继续深入学习Struts框架。
图2.3简单描述了Struts的工作原理。它把Struts框架处理客户请求的整个过程细分为八个步骤,下面就来详细分析这些步骤。
|
(点击查看大图)图2.3 struts工作原理示意图 |
1. 读取配置(初始化ModuleConfig对象)
采用Struts框架的Web应用,在Web应用启动时就会加载并初始化ActionServlet,在ActionServlet初始化ModuleConfig的时候,调用initModuleConfigFactory()初始化配置工厂,然后由配置工厂通过initModuleConfig("", config)获得ModuleConfig对象。
通过ModuleConfig对象调用下列方法去初始化相关模块。
- initModuleMessageResources(moduleConfig);
- initModuleDataSources(moduleConfig);
- initModulePlugIns(moduleConfig);
这些方法的功能就是:容器在加载Struts应用程序时,会先加载web.xml中与Struts相关的一些配置参数,找到struts-config.xml文件,然后通过循环来读取此文件和解析里面的内容,并初始化相关对象。
2. 用户请求
用户提交表单或调用url向Web应用程序服务器提交一个请求,请求的数据用HTTP协议上传给Web服务器。
3. 填充FormBean
填充FormBean的过程包括实例化、复位、填充数据、校验、保存等操作。根据*.do请求从ActionConfig中找出对应该请求的Action子类,如有对应的Action且这个Action有一个相应的ActionForm,则ActionForm被实例化并用HTTP请求的数据填充其属性,并保存在ServletContext中,这样它们就可以被其他Action对象或JSP调用。如果没有对应的Action,控制器则直接转发给JSP或静态页面。
4. 转发请求
控制器根据配置信息ActionConfig将请求派发到具体的Action,与请求相应的FormBean将一并传给这个Action对象。
5. 处理业务
Action一般只包含一个execute()方法,它负责执行相应的业务逻辑。执行完毕后返回一个ActionForward对象,控制器通过该ActionForward对象进行转发工作。
6. 返回响应
Action根据业务处理的不同结果返回一个响应对象给总控制器,该目标响应对象对应一个具体的JSP页面或另一个Action。
7. 查找响应
总控制器根据业务功能Action返回的目标响应对象找到对应的资源对象,通常是一个具体的JSP页面。
8. 响应用户
目标响应对象将结果展现给用户目标响应对象,即具体的JSP页面,这样客户就得到响应的结果。
这里只是从使用Struts的角度对它的工作原理作了分析,在后面的章节中还会深入分析ActionMapping对象、ActionForm对象及Action对象的初始化过程。下面通过一个示例来加深对Struts工作原理的理解。
(转自51CTO.com http://book.51cto.com/art/200909/152101.htm)
分享到:
相关推荐
Struts1工作原理浅析【转】
Struts的工作原理 DOC
使用servlet模拟struts1的工作原理,解析xml,处理请求,自动封装数据
struts2工作原理、请求响应流程。。。。。。。。。。。。。。。
Struts1工作原理浅析
Hibernate、Spring和Struts工作原理及使用理由
struts1工作原理 struts2工作原理 struts1和struts2比较 spring mvc工作原理 struts和spring mvc比较
Struts2 工作原理 Struts2框架 有图
很不错的struts运行原理深刻解说,初学者很受用
struts2工作原理图
Struts1工作原理浅析 1.引入struts1 2.struts1工作原理 3.struts1工作机制 4.struts1的安装于基本配置 5.ActionServlet
Struts1与Struts2原理 区别详解汇总
struts2工作原理.struts2工作原理.struts2工作原理.struts2工作原理.
学习的时候总结出来的,相当清晰的描述了struts2
Spring+Hibernate+Struts工作原理
Struts2的工作原理总结
Struts framework的工作原理和组件Struts framework的工作原理和组件Struts framework的工作原理和组件Struts framework的工作原理和组件Struts framework的工作原理和组件