有的同学问我如何向面试官描述Struts1.2控制流程。
关键还是要自己了解透彻。现总结如下。供参考:
Struts1.2依然是应用很广的框架,熟悉其基本的控制流程是必要的:
一、ActionServlet的初始化
ActionServlet作为Struts组件的前端控制器,由于web.xml的相应配置:
<load-on-startup>0</load-on-startup>
在应用一加载时即会被实例化并调用其init方法,init方法所做的主要工作有二:
1. 加载struts配置文件,并创建用于封装配置信息的ModuleConfig对象
2. 加载资源文件,并创建用于封装资源文件的MessageResources对象
需要注意两点:如果web.xml有多模块配置,将创建多个ModuleConfig对象和MessageResources对象分别用于封装各个模块的struts配置文件和资源文件。
针对各个模块所创建的ModuleConfig对象和MessageResources对象将存储在ServletContext中,对应的属性名中有该模块名称的相应标识。
另外,如果有相应配置的话,init方法还将初始化数据源和PlugIn
二、ActionServlet的process
所有形如*.do的请求(根据web.xml中的相关配置)将提交给ActionServlet,最终将调用其process方法。process方法的主要工作有三:
1. 根据请求信息获知所请求的模块名称,从ServletContext中获得与请求模块对应的的ModuleConfig对象,并存储到request中。
2. 根据模块信息获得相应的RequestProcessor对象,一个模块对应一个RequestProcessor对象,RequestProcessor对象将关联与所属模块对应的ModuleConfig对象。
3. 调用RequestProcessor对象的process方法,将request和response作为参数传递给它。
三、RequestProcessor的process
RequestProcessor对象的process方法的主要工作有五步:
1. 调用自己的 processPreprocess(request, response)方法,该方法不进行任何操作,用于子类重写扩展其功能。
2. 获得与请求地址所匹配的ActionMapping对象,AcionMapping对象用于封装一个特定acion的配置信息。
3. 根据ActionMapping中的配置信息获得ActionForm对象(该对象将缓存到request或session中),并将表单数据填充到ActionForm中,然后根据ActionMapping的配置决定是否验证ActionForm,如果验证,将调用ActionForm的validate方法,若其返回的ActionErros对象中包含ActionMessage对象则表示验证失败,将转向action配置信息input属性所指示的地址。
4. 如果ActionForm无需验证或验证通过将创建并缓存与请求地址匹配的Action对象,将ActionMapping对象、ActionForm对象、request和response作为参数调用其execute方法。
5. 根据Action对象的execute方法返回的ActionForward对象,将请求转发或重定向到该ActionForward所封装的地址。
分享到:
相关推荐
struts 1.2 jar 包-驱动包 struts 1.2 jar 包-驱动包
BBS-- STRUTS1.2BBS-- STRUTS1.2BBS-- STRUTS1.2BBS-- STRUTS1.2BBS-- STRUTS1.2
这是我结合网络资源。。和我对一些平时知识积累做的一个文件上传。。可能还存在漏洞。。请爱学者补全。。它将是一个完美的文件上传资料。。希望能给你的学习带来方便
struts1.2-2.0学习总结
我觉得struts1.2是一个比较稳定的框架,就连网上有名的教授都推荐用struts1.2,所以没有驱动的友友赶紧下载吧!
struts2必须核心jar包, struts2-core-2.3.1.2.jar
【Struts1.2总结】struts-config.xml配置
struts2-core-2.2.3.1-sources.jar struts2-core-2.2.3.1-sources.jar struts2-core-2.2.3.1-sources.jar
struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar
java需要的控件,struts1.2,内含有很多jar文件,在网上找不到合适资源的话可以,方便大家下载使用
struts1.2源码.rar 核心源码 struts-1.2.4-lib Struts1.2API chm格式
struts1.2-jars.rar 所有jar包
struts1.2jar包(antlr.iar , commons-beanutils.jar , commons-digester.jar ,commons-fileupload.jar ,commons-logging.jar ,commons-validator.jar ,jakarta-oro.jar ,struts.jar等)
struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...
struts1.2-jars是struts1.2的jar包,struts1.2-jars是struts1.2的jar包
struts2-convention-plugin-2.3.24.1
struts1.2 jar包 struts1.2 jar包 struts1.2 jar包 struts1.2 jar包 struts1.2 jar包
赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-plugin-2.3.24-sources.jar; 赠送Maven依赖信息文件:struts2-json-plugin-...
struts1.2 使用流程 .txt文档
commons-dbcp-1.2.jar commons-pool-1.2.jar struts-legacy-1.0.jar commons-collections-3.1.jar