`
lvwenwen
  • 浏览: 953322 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

structs运行机制与原理

阅读更多
Struts1工作原理

      除了学习Struts的基础知识。建议读者还要熟知Struts较为重要的部分--工作原理,这并不是必须要学习的部分。就像很多不懂汽车内部构成原理的人照样可以驾驶汽车一样,不了解Struts的工作原理,并不影响对Struts的使用。但如果能了解Struts的工作原理,则可以更好地让Struts为自己提供服务。如果初学的读者觉得此部分有难度,可以将本节内容放在最后阅读。

     通过2.1节的讲解,相信读者已经拥有驾驭Struts框架的能力,下面将从工作原理角度入手来继续深入学习Struts框架。

     图2.3简单描述了Struts的工作原理。它把Struts框架处理客户请求的整个过程细分为八个步骤,下面就来详细分析这些步骤。

  
(点击查看大图)图2.3  struts工作原理示意图

1. 读取配置(初始化ModuleConfig对象)

     采用Struts框架的Web应用,在Web应用启动时就会加载并初始化ActionServlet,在ActionServlet初始化ModuleConfig的时候,调用initModuleConfigFactory()初始化配置工厂,然后由配置工厂通过initModuleConfig("", config)获得ModuleConfig对象。

     通过ModuleConfig对象调用下列方法去初始化相关模块。


1.initModuleMessageResources(moduleConfig); 
2.initModuleDataSources(moduleConfig); 
3.initModulePlugIns(moduleConfig);
     这些方法的功能就是:容器在加载Struts应用程序时,会先加载web.xml中与Struts相关的一些配置参数,找到struts-config.xml文件,然后通过循环来读取此文件和解析里面的内容,并初始化相关对象。

2. 用户请求

     用户提交表单或调用url向Web应用程序服务器提交一个请求,请求的数据用HTTP协议上传给Web服务器。

3. 填充FormBean

     填充FormBean的过程包括实例化、复位、填充数据、校验、保存等操作。根据*.do请求从ActionConfig中找出对应该请求的Action子类,如有对应的Action且这个Action有一个相应的ActionForm,则ActionForm被实例化并用HTTP请求的数据填充其属性,并保存在ServletContext中,这样它们就可以被其他Action对象或JSP调用。如果没有对应的Action,控制器则直接转发给JSP或静态页面。

4. 转发请求

     控制器根据配置信息ActionConfig将请求派发到具体的Action,与请求相应的FormBean将一并传给这个Action对象。

5. 处理业务

     Action一般只包含一个execute()方法,它负责执行相应的业务逻辑。执行完毕后返回一个ActionForward对象,控制器通过该ActionForward对象进行转发工作。

6. 返回响应

     Action根据业务处理的不同结果返回一个响应对象给总控制器,该目标响应对象对应一个具体的JSP页面或另一个Action。

7. 查找响应

     总控制器根据业务功能Action返回的目标响应对象找到对应的资源对象,通常是一个具体的JSP页面。

8. 响应用户

     目标响应对象将结果展现给用户目标响应对象,即具体的JSP页面,这样客户就得到响应的结果。

     这里只是从使用Struts的角度对它的工作原理作了分析,在后面的章节中还会深入分析ActionMapping对象、ActionForm对象及Action对象的初始化过程。下面通过一个示例来加深对Struts工作原理的理解。
  • 大小: 25.6 KB
  • 大小: 29 KB
分享到:
评论

相关推荐

    structs的原理

    视图由客户端浏览器生成,而模型和控制器在服务器上运行。在这种情况下,经典的 MVC 模式无法直接实现模型与视图的双向通信,因为视图无法直接调用服务器端的控制器,而模型也无法直接通知视图数据的变化。 **...

    structs框架

    Structs框架是一个基于Java的MVC(Model-View-Controller)设计模式的Web应用开发框架,它极大地...在实际开发过程中,理解并熟练掌握Structs框架的各个组成部分及其工作原理,对于提升开发效率和项目成功率至关重要。

    Structs2架包

    - 通过缓存机制、拦截器优化等手段,Structs2能够提高应用程序的运行效率。 总的来说,Structs2架包为开发者提供了一个高效、灵活的Web开发平台,通过其丰富的功能和强大的扩展性,可以快速构建出稳定且易于维护的...

    基于structs的图书管理系统

    本篇将深入探讨一个基于Structs框架实现的图书管理系统,揭示其设计原理、主要功能以及实现细节。 Structs是一个轻量级的MVC(Model-View-Controller)框架,适用于Java Web应用开发。它以简洁的API和灵活的配置,...

    structs-1.2.9的bin和src源码

    《深入解析structs-1.2.9:bin与src源码分析》 在软件开发领域,理解并掌握开源库的内部运作机制是提升技术能力的重要途径。structs-1.2.9作为一款广泛使用的数据结构库,其bin和src文件为我们提供了深入研究其功能...

    java学习(ssh) action structs spring hibernet

    SSH框架(Struts、Spring、Hibernate)在Java企业级应用开发中占据着举足轻重的地位,掌握它们的原理和使用方法对于提升开发效率和代码质量至关重要。通过深入学习和实践,开发者可以更好地应对复杂的业务需求,构建...

    SSH-----structs项目搭建

    它提供了一种映射机制,将Java对象和数据库表之间的关系进行抽象,使得开发者可以使用面向对象的方式处理数据库操作。Hibernate支持实体管理、查询语言(HQL)和 Criteria 查询,极大地提高了开发效率。 在整合SSH...

    java-ssh-learning-methods.rar_structs_structs 2_structs hibernat

    Struts2是其后续版本,提供了更强大的拦截器机制,支持更多种类型的动作结果,以及与各种模板引擎的集成,如FreeMarker和Velocity。 3. **Hibernate框架**:Hibernate是Java领域最流行的ORM框架之一,它将Java对象...

    omap-panel-data.rar_V2 _structs

    在Linux操作系统中,驱动程序是连接硬件与操作系统的核心部分,它们负责管理和控制硬件设备的运行。在移动设备领域,特别是那些基于Texas Instruments OMAP(Open Multimedia Applications Platform)处理器的设备,...

    Structs+Spring+Hibernate框架所需jar包下载

    标题中的"Structs+Spring+Hibernate框架所需jar包下载"提到了三个重要的Java开发框架:Struts、Spring和Hibernate。...对于初学者来说,理解这三个框架的工作原理和整合方式是学习Java EE的重要步骤。

    JSP+structs+sql邮件短信系统

    【JSP+Structs+SQL邮件...综上所述,"JSP+Structs+SQL邮件短信系统"涵盖了Web开发的多个关键领域,从后端服务到前端展示,从数据存储到通信接口,从安全机制到性能优化,都体现出了一套完整的系统设计思路和实施方法。

    structs2文件

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java web应用程序框架,它在Web开发领域中被广泛使用。Struts2的核心是Action类,...通过分析和运行这些示例,你可以更好地理解Struts2框架的工作原理和功能。

    Linux内核分析与应用课件第4章(一)内存管理机制.pdf

    Linux内核分析与应用课件第4章(一)内存管理机制 Linux内核分析与应用课件的第四章... Linux内核分析与应用课件的第四章对Linux内存管理机制进行了详细的讲解,帮助读者深入理解Linux内存管理机制的实现原理和机制。

    structs 英文教材

    这些配置包含了框架运行时所需的各种设置,如Action映射、拦截器配置等。 #### 四、Struts2工作原理 1. **请求分发**:当客户端发起HTTP请求时,Struts2的核心过滤器`StrutsPrepareAndExecuteFilter`会捕获请求并将...

    struts的教程.pdf

    #### Struts基本组件与工作原理 Struts的核心组件包括: - **StrutsActionServlet**:作为控制器,管理HTTP请求,调用相应的Action对象。 - **StrutsActionClasses**:具体执行业务逻辑的部分,每个Action对应一个...

    structs程序设计从入门到精通word文档

    - **Struts中的Action类的工作机制**:深入剖析了Action类的工作原理及其与Struts其他组件之间的交互过程。 - **Struts中不同的Action和ActionForm组合**:探讨了不同类型的Action和ActionForm如何配合使用以满足...

    SSH框架详解

    个人中的SSH详细介绍,包括struts1的工作原理、Struts1优缺点(为什么要用strust1)、struts1的工作原理及基本配置详解、struts2工作原理、struts2运行机制、Struts2的工作流程、Struts2工作原理、Struts1与Struts2...

    struts-2.1.8-apps 所有最新的Struts2.x开发应用

    7. **异常处理**:Struts2提供了全局的异常处理机制,可以统一处理程序运行时可能出现的异常,提高了系统的健壮性。 在"struts-2.1.8"子文件夹中,我们可以期待找到以下内容: - **源代码**:展示如何组织和实现一...

    structs in action中文完全版\6. 连线 ActionForward.pdf

    - **使用运行时参数**:ActionForward允许在执行转发时携带参数,这对于动态生成页面内容非常有用。例如,可以通过查询字符串的形式在ActionForward的路径中传递参数,这些参数可以在目标Action或JSP页面中被解析并...

Global site tag (gtag.js) - Google Analytics