一、struts1.x的目标是提供一个开发web应用的开源框架,是基于mvc设计模式来开发程序。
二、struts1.x的ActionServlet执行流程:在web.xml配置好struts1.x的配置文件信息struts-config.xml,例:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="loginForm" type="com.struts.LoginActionForm"/>
</form-beans>
<action-mappings>
<action path="/login"
type="com.struts.LoginAction"
name="loginForm"
scope="request"
validate="false"
>
<forward name="success" path="/dyna_actionform.jsp"/>
</action>
1、浏览器发出与ActionServlet配置相匹配的请求时,服务器将请求交给struts,即ActionServlet
2、接着调用String path = processPath(request, response);将请求进行截取。
3、接着调用ActionMapping mapping = processMapping(request, response, path);通过截取到的path找到与之相应的ActionMapping
4、在ActionMapping中找到name属性,查看scope(session或request)对应的内置对象中是否存在相应ActionForm对象,ActionForm form = processActionForm(request, response, mapping);若有,则创建,若无,则创建,并且将ActionForm放在scope中
5、接着将表单数据传给ActionForm,利用processPopulate(request, response, form, mapping);对表单数据进行搜集
6、接着Action action = processActionCreate(request, response, mapping);创建Action对象,接着ActionForward forward= processActionPerform(request, response,action, form, mapping);调用执行相应的业务层,持久层对象 的方法,返回一个转向信息
7、最后processForwardConfig(request, response, forward);在forward标签中找到与转向信息相匹配的转向页面
注意:
1.ActionMapping封装action信息,ActionForward封装forward信息 ,ActionConfig(map<key=path,value=ActionMapping>)存放ActionMapping配置信息,例:
<action-mappings>——>ActionMapping
<action path="/login" type="com.struts.LoginAction" name="loginForm" scope="request" validate="false" > <forward name="success" path="/dyna_actionform.jsp"/>——>ActionForward </action>
</action-mapping>
2.FormBeanConfig存放ActionForm配置信息,FormBeans(map<key=name,value=FormBeanConfig>)存放FormBeanConfig配置信
例:<form-beans>——>FormBeanConfig
<form-bean name="loginForm" type="com.struts.LoginActionForm"/>
</form-beans>
3.ModuleConfig封装了ActionConfig和FormBeans配置信息