1.启动web容器(web server)
1.1 用web.xml初始化应用,搜索含有<load-on-startup>0</load-on-startup>项的servlet,
并加载入容器(new object过程);
1.2 初始化servlet(用<init-param> <param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>)加载了strtus的配置信息,
发现<plug-in>加载扩展组建ContextLoaderPlugIn
根据contextConfigLocation属性文件的value值加载Spring上下文beans.xml
并产生ModuleConfig对象;
1.3 此时web server准备好截获 <url-pattern>*.do</url-pattern>的请求
2.访问应用首页
2.1 发出forward请求 page=“list.do”
2.2 web容器截获请求,并判断请求类别,根据请求字符串后缀(.do)
if 是.do 转交ActionServlet核心控制器处理
2.2.1 ActionServlet调用私有方法 process()方法
2.2.2 在process方法中 再调用Requestprocessor类(核心处理器)的process();
2.2.3 在Requestprocessor 的process()方法中 编码判定、语言判定等程序,并且对请求字符串解析(去掉.后的字符)first;
2.2.4 根据请求串(list)在容器中由struts-config.xml产生的ModuleConfig对象中 搜索与path值相同的action项
2.2.5 在此action中先搜索
if name属性存在
2.2.5.1 根据此name的value值去查找同名的form-bean对象
if form-bean对象已创建
a. 调用此formbean的reset()初始化该对象;
b. 用请求的属性值填充同名的formbean 属性值;
c. 再调用此formbean的validate()验证属性的合法性(返回的ActionErrors对象为null)。
else 根据formbean项的type属性创建formbean对象,再调用reset()、填充、validate()验证
如果合法:
d.再根据请求串(list)搜索action对象是否存在
if 存在 直接用反射调用execute(mapping,form,request,response),返回的forward对象
else 根据type属性值创建action对象(此时只能返回DelegatingActionProxy的实例)
通过DelegatingActionProxy的实例将控制权转交给Spring(传入Action.path值)
在beans.xml中搜索name值等于path值的bean对象(根据class的值反射创建)
此时才返回真正的action实例(对象)
后用反射调用execute(mapping,form,request,response)返回的forward对象;
如果不合法:(返回的ActionErrors对象不为null)
a.直接访问此action项的input属性返回物理视图给ActionServlet
2.2.6 ActionServlet接获控制权,并根据返回的forward对象解析view响应给客户
分享到:
相关推荐
struts spring集成原理 struts spring集成原理 struts spring集成原理
Hibernate、Spring和Struts工作原理及使用理由
struts1工作原理 struts2工作原理 struts1和struts2比较 spring mvc工作原理 struts和spring mvc比较
struts工作原理图、spring框架结构图、hibernate工作原理图
Spring+Hibernate+Struts工作原理
struts2-spring-plugin.jar :struts,spring插件。有了这个插件,spring容器才能在全应用中适用。 在我们集成struts2+spring+hibernate,也就是所谓的S2SH,不可避免的要引入struts2-spring-plugin.jar插件。 本文...
《Struts + Spring + Hibernate工作原理解析》文档,解析SSH框架的工作原理。
spring优点,struts工作原理。
典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与...
Struts+Spring+Hibernate原理 理解
Struts、Spring、Hibernate三大框架的原理和优点
Hibernate、Spring和Struts工作原理及使用理由.txt
本文并不想介绍Struts,Spring,Hibernate的原理系统架构等,本文地目的是通过一个较复杂地实例介绍如何整合Struts,Spring,Hibernate,网上现有的例子虽然也能达到目的,但功能都比较单一,复杂的例子时会有...
详细说明了Spring如何与Struts2之间整合,以及整合的原理
Struts+spring+hibernate学习笔记! - Struts原理与实践
struts、spring、hibernate工作原理.培训架构的学习资料,分享给大家,希望对大家有用!
Spring+Struts2_整合原理
Struts工作机制?为什么要使用Struts? ………… Hibernate工作原理及为什么要用? ………… spring工作机制及为什么要用? …………