`

Struts001——Struts原理图

阅读更多

strut2官网的原理图片如下,显示为struts2的整体结构

图解

1)客户端初始化一个指向Servlet容器(例如Tomcat)的请求
2)这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3)接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
4)如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5)ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类
6)ActionProxy创建一个ActionInvocation的实例。
7)ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8)一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper

在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。

分享到:
评论

相关推荐

    struts2工作原理图

    如果请求的URL匹配Struts2的配置,那么请求就会被转发到Struts2的前端控制器——`FilterDispatcher`(在Struts2较新版本中,已替换为`StrutsPrepareAndExecuteFilter`)。 2. **过滤器Dispatcher**:`...

    Struts2.1权威指南——基于WebWork核心的MVC开发.pdf

    - **第4章深入Struts2**:进一步探讨Struts2的工作原理,包括Action类的设计、拦截器的使用等高级话题。 - **第5章Struts2的类型转换**:解释如何实现不同类型数据之间的自动转换,提高开发效率。 - **第6章Struts2...

    struts1.2上传图片例子

    本文将通过一个具体的示例——基于Struts 1.2的图片上传应用——来详细介绍其实现过程。 #### 二、环境搭建与配置 在开始编写代码之前,我们需要确保已经正确地搭建好了开发环境,并且项目中包含了Struts 1.2的...

    JSP源码——[信息办公]基于struts的图书管理系统_struts_ts.zip

    【标题】"JSP源码——[信息办公]基于struts的图书管理系统_struts_ts.zip"揭示了这个压缩包中的内容是一个使用Java Server Pages (JSP)技术开发的信息办公用图书管理系统。系统的核心架构是基于Struts框架,这是一个...

    struts2原理分析 最新版 最全面

    ### Struts2原理分析 #### 一、Struts2架构概览 Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用框架。它将Web应用程序分为模型(Model)、视图(View)和控制器(Controller)三个部分,...

    struts详细流程图

    在这个"struts详细流程图"中,我们可以看到Struts框架的工作原理和各个组件之间的交互过程。 首先,让我们从基础开始。在传统的Web应用中,用户发送请求到服务器,服务器处理请求并返回响应。Struts框架引入了一个...

    struts2学习资料

    "struts2.0%2Bhibernate3.1%2Bspring2.0的使用.doc" 涉及到Struts2与其他两个流行框架——Hibernate和Spring的集成。Hibernate是一个对象关系映射(ORM)工具,用于简化数据库操作;Spring则是一个全面的后端开发...

    struts2 标签使用

    `<s:if>` 标签依赖于 Struts2 提供的强大表达式语言——OGNL(Object-Graph Navigation Language),该语言可以方便地访问 JavaBean 对象属性。 #### OGNL 表达式与 ValueStack OGNL 是一种强大的表达式语言,它...

    Struts一个实例

    在本实例中,我们将深入理解Struts框架的基本工作原理和核心组件,以帮助初学者更好地掌握这一强大的开发工具。 首先,我们来了解一下Struts的核心概念: 1. **Action类**:在Struts中,Action类是处理用户请求的...

    struts2+hibernate+Mysql开发图书管理系统

    本系统采用经典的Java Web开发框架——Struts2、持久层框架Hibernate以及关系型数据库MySQL,构建了一个功能完备、易于维护的图书管理系统。下面将详细阐述这三个核心技术在系统中的应用。 首先,Struts2作为Action...

    Struts Controller UML diagrams

    本文将以Struts 1.1版本为例,通过UML图展示其控制器的内部结构和工作原理。 ### 重要说明 本文是关于Struts 1.1控制器的“Beta”版本文章,目的是使用UML图表来说明Struts框架的控制器部分。这不仅是一篇介绍...

    struts2图片上传项目,导入直接使用

    Struts2图片上传项目是一个基于Java的Web应用框架——Struts2实现的,它允许用户在网站上上传图片。在Web开发中,图片上传功能是非常常见的,例如在社交媒体、电商平台或者个人博客等场景。Struts2作为一个强大的MVC...

    J2EE考试复习试题_struts2_spring_hibernate(答案整合完毕

    Struts2框架,作为Web开发领域的佼佼者,源自于两大先驱框架——WebWork与XWork的发展。WebWork2是建立在XWork基础之上的,它充分利用了XWork的命令模式框架和拦截器框架,进一步拓展了Web应用开发的边界。 **XWork...

Global site tag (gtag.js) - Google Analytics