`

Struts1.2 控制流程

阅读更多

Struts1.2依然是应用很广的框架,熟悉其基本的控制流程是必要的:

一、ActionServlet的初始化

ActionServlet作为Struts组件的前端控制器,由于web.xml的相应配置:

<load-on-startup>0</load-on-startup>

在应用一加载时即会被实例化并调用其init方法,init方法所做的主要工作有二:

加载struts配置文件,并创建用于封装配置信息的ModuleConfig对象
加载资源文件,并创建用于封装资源文件的MessageResources对象
需要注意两点:

如果web.xml有多模块配置,将创建多个ModuleConfig对象和MessageResources对象分别用于封装各个模块的struts配置文件和资源文件。
针对各个模块所创建的ModuleConfig对象和MessageResources对象将存储在ServletContext中,对应的属性名中有该模块名称的相应标识。
另外,如果有相应配置的话,init方法还将初始化数据源和PlugIn



二、ActionServlet的process

所有形如*.do的请求(根据web.xml中的相关配置)将提交给ActionServlet,最终将调用其process方法。process方法的主要工作有三:

根据请求信息获知所请求的模块名称,从ServletContext中获得与请求模块对应的的ModuleConfig对象,并存储到request中。
根据模块信息获得相应的RequestProcessor对象,一个模块对应一个RequestProcessor对象,RequestProcessor对象将关联与所属模块对应的ModuleConfig对象。
调用RequestProcessor对象的process方法,将request和response作为参数传递给它。
三、RequestProcessor的process

RequestProcessor对象的process方法的主要工作有五步:

调用自己的 processPreprocess(request, response)方法,该方法不进行任何操作,用于子类重写扩展其功能。
获得与请求地址所匹配的ActionMapping对象,AcionMapping对象用于封装一个特定acion的配置信息。
根据ActionMapping中的配置信息获得ActionForm对象(该对象将缓存到request或session中),并将表单数据填充到ActionForm中,然后根据ActionMapping的配置决定是否验证ActionForm,如果验证,将调用ActionForm的validate方法,若其返回的ActionErros对象中包含ActionMessage对象则表示验证失败,将转向action配置信息input属性所指示的地址。
如果ActionForm无需验证或验证通过将创建并缓存与请求地址匹配的Action对象,将ActionMapping对象、ActionForm对象、request和response作为参数调用其execute方法。
根据Action对象的execute方法返回的ActionForward对象,将请求转发或重定向到该ActionForward所封装的地址。

分享到:
评论

相关推荐

    struts1.2驱动包

    7. **Interceptor(拦截器)**:虽然Struts1.2的核心版本不包含拦截器,但可以通过扩展实现,提供在请求处理流程中的预处理和后处理功能,如日志记录、权限检查等。 8. **Internationalization(国际化)**:Struts...

    struts1.2资源整合

    在配置Struts1.2时,你需要在web.xml中设置Struts的前端控制器Filter(通常为`org.apache.struts.action.ActionServlet`),并配置相应的Action Mapping。同时,还需要在struts-config.xml文件中定义Action、Form ...

    Struts1.2中文学习手册

    Struts1.2中文学习手册是一本面向初学者的指南,它涵盖了Struts1.2的基础知识、配置、控制器、模型、视图以及动作和业务逻辑的整合。 首先,手册会介绍Struts1.2的核心概念,包括Action类、Form Bean和Tiles布局。...

    STRUTS1.2中文文档

    11. **Struts标签库**:Struts1.2提供了丰富的标签库,如logic标签、bean标签和html标签,使得在JSP页面中操作业务数据和控制流程变得更加简单。 通过深入学习这些Struts1.2的关键概念和机制,开发者能够更好地理解...

    最全的struts1.2操作流程

    4. **添加Struts1.2 Form, Action & Jsp**:通过选择myEclipse &gt; Web &gt; Struts &gt; Struts1.2,然后选择Struts1.2 Form, Action & Jsp模板,开始创建Struts的实例。 5. **填写Use Case和Super Class**:在创建新组件时...

    struts1.2 使用流程

    Struts1.2的使用流程涉及到了Web应用程序的结构定义、ActionForm的创建、JSP页面的编写、Action处理逻辑的实现、RequestProcessor的定制以及控制器配置等多个方面。通过遵循这一流程,开发者可以构建出结构清晰、...

    struts1.2标签实例

    Struts1.2标签是Java Web开发中Struts框架的一部分,它提供了一种在JSP页面中更加便捷、可维护的方式来处理业务逻辑和控制流程。Struts1.2标签库大大简化了视图层的开发,使开发者可以避免过多地在JSP中编写Java脚本...

    struts1.2 jar包

    Struts1.2是一款历史悠久且广泛使用的Java Web框架,它基于Model-View-Controller(MVC)设计模式,为开发人员提供了构建动态、数据驱动的Web应用的强大工具。该框架在2004年首次发布,是Apache软件基金会的一个项目...

    struts 1.2驱动包

    7. **配置管理**:struts-config.xml文件是Struts的核心配置文件,定义了Action、ActionForm、ActionForward、PlugIn等元素,控制着整个应用的运行流程。 8. **标签库**:Struts提供了丰富的自定义标签,如logic、...

    struts 1.2 类库和源码

    3. **配置文件**:struts-config.xml是Struts的核心配置文件,定义了Action、ActionMapping、Forward等,用于指定请求处理流程。 4. **Tiles框架**:提供了一种模块化页面布局的方式,可以组合多个小的页面组件来...

    struts1.2.jar包

    7. **异常处理**:Struts1.2提供了统一的异常处理机制,可以在全局范围内捕获和处理应用程序中的异常,简化错误处理流程。 8. **ActionMapping**:ActionMapping对象描述了用户请求如何映射到特定的Action实例。它...

    ext+struts1.2图书管理系统

    这种结合使得前端能够动态地更新数据,同时利用 Struts1.2 的强大控制能力处理复杂的业务流程。 文件名为 "bysj2" 的压缩包可能包含了该图书管理系统的源代码、配置文件、数据库脚本等相关资源。解压后,开发者可以...

    struts1.2源代码及文档

    通过学习Struts1.2的源代码,你可以更深入地了解MVC模式的实现,以及Web应用的请求处理流程。同时,结合提供的文档,可以更好地理解框架的设计理念和使用方法。文档通常会包含详细的API参考、教程和最佳实践,对于...

    struts1.2资料.zip

    它遵循Model-View-Controller(MVC)设计模式,提供了一种结构化的方式来组织应用程序的业务逻辑、用户界面和控制流程。这个“struts1.2资料.zip”压缩包包含了深入学习Struts1.2所需的关键资源。 首先,`Struts...

    struts1.2+spring2.0 登录 例子

    Struts1.2和Spring2.0是两个经典的Java企业级开发框架,它们在Web应用程序开发中被广泛使用。这个“struts1.2+spring2.0 登录例子”是一个整合了这两个框架的示例项目,旨在帮助开发者理解如何在实际应用中集成和...

    struts1.2+hibernate开发的小项目

    通过这个小项目,初学者可以深入理解Struts1.2和Hibernate的结合使用,以及Java Web开发的基本流程。同时,实践中遇到的问题和解决方案也能帮助提升问题解决能力和代码调试技巧。不过,要注意的是,由于Struts1.2...

    Struts1.2

    6. **Struts标签库**:提供了丰富的JSP标签,如logic标签用于控制流程,bean标签用于访问JavaBean,html标签用于生成HTML表单元素等,使得JSP页面更易读,降低了代码耦合。 7. **国际化和本地化**:Struts1.2支持多...

    struts1.2的jar包及源码

    6. **标签库(Taglib)**:Struts1.2提供了丰富的JSP标签,如`s:form`、`s:textfield`等,方便开发者在视图层操作数据和控制流程。 7. **国际化(Internationalization, i18n)**:Struts1.2支持多语言环境,可以...

    Struts1.2+Spring1.2+Hibernate3.0企业人力资源管理系统

    Struts1.2作为表现层框架,主要负责处理用户的请求,控制应用的流程。它通过ActionForm来封装用户提交的数据,再通过Action转发到相应的业务逻辑处理类。Struts的配置文件定义了URL与Action的映射,使得系统具有良好...

    BBS-- STRUTS1.2

    二、STRUTS1.2工作流程 1. 用户通过浏览器发送HTTP请求。 2. ActionServlet拦截请求,根据struts-config.xml中的配置找到对应的ActionMapping。 3. 调用ActionForm对象,将请求参数填充到表单对象中。 4. Action...

Global site tag (gtag.js) - Google Analytics