struts1.x的初步认识

时间:2022-06-06 22:03:35

一、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配置信息