`

Struts1.2 控制流程----面试时可用

阅读更多

有的同学问我如何向面试官描述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.7.jar包"中,包含了Struts 1.2.7版本的所有核心类和依赖库,用于构建基于Struts 1.2的应用程序。这个驱动包是开发和运行Struts 1.2应用的基础,包含了Action、ActionForm、Interceptor等相关类...

    struts1.2和commons-fileupload实现文件上传

    然后,你需要配置Struts的配置文件(struts-config.xml),声明一个处理文件上传的Action,并指定对应的ActionForm类: ```xml &lt;form-bean name="uploadForm" type="com.yourpackage.UploadForm"/&gt; ``` 接...

    struts1.2驱动包

    6. **配置文件**:struts-config.xml是核心配置文件,定义了Action、ActionForm、ActionMapping等元素,以及与ActionForm对应的业务逻辑类和视图页面的映射。 7. **Interceptor(拦截器)**:虽然Struts1.2的核心...

    struts1.2-jars.zip

    4. **配置文件**:主要包括struts-config.xml,它是Struts框架的核心配置文件,定义了Action、ActionForm、ActionForward等元素的映射关系。 5. **标签库**:提供了丰富的JSP标签,如logic标签、bean标签、html标签...

    struts1.2资源整合

    其次,`struts-1.2.4-lib`是一个包含Struts1.2运行所需库文件的压缩包。这个文件夹通常会包含如commons-logging、commons-beanutils、commons-digester、commons-collections、xerces等Apache Commons库,以及其他的...

    struts2-core-2.3.1.2.jar

    struts2必须核心jar包, struts2-core-2.3.1.2.jar

    struts2-json-plugin-2.3.24-API文档-中文版.zip

    赠送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操作流程

    Struts 1.2 是一个经典的 Java Web 开发框架,用于构建基于模型-视图-控制器(MVC)模式的应用程序。以下是对Struts 1.2操作流程的详细解释: **第一章:Struts 1.x 的配置过程** 1. **创建JavaWeb程序**:在开发...

    struts1.2-jars.rar 所有jar包

    1. `struts-core.jar`:包含Struts框架的核心类,如Action、Form Bean、ActionMapping、ActionForward等,以及控制器Servlet——StrutsActionServlet。 2. `struts-bean.jar`:提供了Bean相关类,如PropertyUtils、...

    struts1.2 + spring2.5 + hibernate3.2框架demo

    Struts1.2通过配置struts-config.xml文件来定义这些行为。 其次,Spring2.5框架的依赖注入(DI)特性允许开发者解耦组件,通过容器管理对象的生命周期和依赖关系。同时,Spring的AOP模块支持切面编程,可以实现事务...

    struts1.2下载包

    2. **创建struts-config.xml**:这个文件是Struts1.2的主配置文件,用于定义Action、ActionForm、Forward、DataSource等,以及Action的映射规则。 3. **编写Action**:Action是处理用户请求的Java类,它实现了`...

    STRUTS1.2中文文档

    3. **配置文件**:Struts1.2的配置主要包括struts-config.xml和web.xml。前者定义了Action类、Form Beans、Action Mapping以及Result Maps,后者用于部署描述符,配置Struts的初始化参数。 4. **Form Beans**:Form...

    Struts1.2中文学习手册

    接着,手册会详细阐述配置文件struts-config.xml的重要性。这是Struts1.2应用的核心配置文件,定义了Action映射、Form Bean定义、数据源以及其他相关的设置。理解如何编写和解析这个文件对于开发者来说至关重要。 ...

    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-core-2.2.3.1-sources.jar

    struts1.2 jar包

    在`struts1.2-jars`这个压缩包中,包含了Struts1.2运行所需的各个jar文件,比如`struts-core.jar`包含了框架的核心组件,`struts-tiles.jar`包含Tiles视图管理组件,`struts-taglib.jar`提供了与JSP相关的标签库,...

    struts1.2 使用流程

    在Struts1.2中,主要的配置文件是`struts-config.xml`,它描述了Action映射、Form Bean定义和国际化资源文件的路径等信息。 #### 2. 创建ActionForm对象 ActionForm对象是Struts框架中用于封装用户请求参数的对象。...

    struts、struts1.2 学习教程

    3. **配置文件**:`struts-config.xml`是Struts的核心配置文件,用于定义Action、ActionForm、ActionMapping等,它是Struts框架的入口点。 4. **ActionForm**:ActionForm对象用于封装用户输入的数据,从HTTP请求中...

    struts 1.2 类库和源码

    - `struts-logic.jar` 提供逻辑控制标签,如条件、循环等。 - `struts-tiles.jar` 支持Tiles框架,用于创建可重用的页面布局。 2. **源码(src)**:包含了Struts 1.2框架的源代码,这对于开发者深入理解框架的...

    struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.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

Global site tag (gtag.js) - Google Analytics