`

4_struts framework工作流程分析

阅读更多

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

A  由于在web.xml中配置了<load-on-startup>0</load-on-startup> , ActionServlet在servlet容器启动的时候启动,然后读取struts-config.xml配置文件中的信息,并且根据这些信息为struts不同的模块初始化ModuleConfig对象:

 

ActionConfig, ControlConfig, FormBeanConfig, ForwardConfig, MessageResourcesConfig

2 发出请求

    浏览器客户端向web服务器发出请求,servlet容器根据配置,将.do请求交由ActionServlet处理

 

3 填充form

    根据url的请求路径,ActionServlet在ActionConfig中找到对应的Action,并且查找对应域,session或者request中的formbean,如果没有找到,就通过反射得到一个新的formbean对象,并且马上存入相关作用域,反之如果已经存在这样一个ActionForm,则ActionForm首先被reset,然后其对应属性被http请求参数填充,然后调用validate方法进行校验。

4 派发请求

    ActionServlet将调用xml文件中所配置的对应Action中的execute()方法,第三步中填充的formbean也会作为第二个参数传递,如果在struts-config.xml配置文件中Action对应的标签没有name属性,或者name属性没有找到对应的formbean标签,就将form参数设置为null去调用execute方法。

 

5 处理业务

    Action一般只包含一个execute()方法,在这个方法中通过调用业务层的模块进行业务逻辑处理

 

6 返回响应

    execute()方法返回给ActionServlet的是一个ActionForward对象,该对象包含了转发的信息,代表了一个具体的JSP页面或者其他Action,ActionServlet通过这个返回的对象进行转发操作。

 

7 查找响应

    ActionServlet根据返回的ActionForward查找到要响应的资源,一般是个JSP页面

 

8 响应用户

    ActionServlet渲染响应页面并且将之返回

 

 

 

分享到:
评论

相关推荐

    Struts framework的工作原理和组件Struts framework的工作原理和组件

    ### Struts Framework 的工作原理与核心组件解析 #### 一、概述 Struts框架作为Java Web开发中的一个重要组成部分,自2000年初发布以来,便因其强大的功能和易用性而受到广泛欢迎。该框架主要针对MVC(Model-View-...

    Struts Fast Track - J2EE JSP Framework

    2. **实际案例分析**:通过具体的应用实例,深入理解Struts框架的工作原理及其在实际项目中的应用。 3. **数据库集成**:介绍如何将Struts框架与数据库技术相结合,实现高效的数据访问。 4. **Struts扩展技巧**:...

    struts2.0源代码

    源码分析是深入理解Struts2工作原理的关键。在"struts2.0源代码"中,你可以看到框架的核心组件、拦截器、配置解析、动作执行等核心功能的实现。以下是一些主要的知识点: 1. **ActionInvocation**:这是Struts2的...

    netbean的struts2.0插件

    4. **调试支持**:集成Struts2的调试工具,可以设置断点,查看执行流程,分析变量值。 5. **集成测试**:支持JUnit测试,便于进行单元测试和集成测试。 6. **智能提示**:在编写JSP或Servlet时,能够智能提示Struts2...

    struts做的图书管理系统

    2. **Struts工作流程**: - 用户通过浏览器发送HTTP请求到服务器。 - Struts的Front Controller(DispatcherServlet)接收到请求,解析请求中的ActionMapping信息。 - 根据ActionMapping,Struts调用相应的Action...

    struts2实现的OA协同办公系统

    开发者通过文档分析可以深入了解Struts2的控制流程、JDBC的数据操作以及协同办公系统的常见设计模式和功能实现。通过这个项目,初学者可以学习到Web开发的基本技能,而有经验的开发者则可以从中获取灵感,改进或扩展...

    ssh;整合流程;xml配置文件;Struts2

    ### SSH框架整合流程详解与XML配置实践 #### 一、SSH框架概述 SSH框架是指将Struts2(S)、Spring(S)与Hibernate(H)三个开源框架进行整合使用的一种应用开发模式。这三个框架分别负责Web层、业务逻辑层以及...

    中国移动业务管理系统(struts_spring_hibernate)

    Struts,全称为Struts Framework,是MVC设计模式的一个具体实现,主要用于控制应用程序的流程。在本系统中,Struts负责处理HTTP请求,将用户的操作与业务逻辑关联起来,通过Action类来执行具体的业务处理,并返回...

    Jave EE (struts2类库 )

    Struts2的核心是Action和Result,它通过拦截器来处理请求,提供了灵活的控制流程,使得开发者可以构建出结构清晰、可维护性强的Web应用。 1. **XWork Core**: `xwork-core-2.1.6.jar` 是Struts2的基础框架,它包含...

    Spring集成struts以及hibernate jar包

    4. **struts2-core-2.3.4.1.jar**:Struts2的核心库,包含Action、Interceptor、Result等核心组件,提供MVC模式的实现。 5. **mysql-connector-java-5.1.13-bin.jar**:MySQL数据库的JDBC驱动,使得Java程序能够...

    struts

    总之,Struts是一个历史悠久且影响深远的Java Web框架,虽然现在有许多新的框架如Spring MVC、Play Framework等,但对于理解和学习MVC模式以及传统的Java Web开发流程,Struts仍然是一个有价值的学习资源。...

    Struts框架的原理的实现

    然而,尽管Struts框架在过去的Web开发中占据了重要地位,但随着Spring MVC和Play Framework等其他框架的崛起,Struts的市场份额逐渐被侵蚀。它的性能问题、复杂性以及更新速度较慢等因素,促使开发者寻找替代方案。 ...

    struts从入门到精通.doc

    - **1.1 JSP Framework - Struts介绍** - **Struts**是Apache组织开发的一个开源MVC(Model-View-Controller)架构框架,主要用于简化Java Web应用的开发。它通过将业务逻辑、展示逻辑和控制器逻辑分离,提供了清晰...

    struts-1.2.9相关jar包和源代码

    理解其工作原理有助于决定是否升级到Struts 2或其他现代框架,如Spring MVC或Play Framework。 总之,这个压缩包提供的Struts 1.2.9相关jar包和源代码,为开发者提供了研究和学习Struts框架的宝贵材料,无论是初学...

    struts源码

    总之,Struts 源码分析可以帮助开发者深入理解Web应用的结构和控制流程,提高开发效率,并为后续学习其他MVC框架打下基础。通过对源码的研究,可以更清楚地看到请求是如何被处理,数据是如何在模型、视图和控制器...

    Struts原理、开发及项目实施.doc

    本文主要探讨了Struts框架的工作原理、安装配置方法,并通过一个具体实例深入分析了Struts在实际开发过程中的应用。此外,还分享了一些在开发过程中积累的经验教训,旨在为读者提供一个全面了解Struts及其在项目中...

    MyFramework - struts2 零配置:convention

    这有助于理解Convention插件如何工作,并能帮助开发者快速构建Struts2应用,减少手动配置的工作量。 总之,Struts2的Convention插件是一种强大的工具,它简化了开发流程,让开发者更加专注于业务逻辑而不是配置细节...

    Struts+Spring开发实例

    2. **配置Struts**:在struts-config.xml中,配置Action的类为Spring的代理类(org.springframework.web.struts.ActionProxyFactoryBean),这样Struts会通过Spring来实例化Action。 3. **Action中的Service注入**:...

Global site tag (gtag.js) - Google Analytics