上图来源于Struts2官方站点,是Struts 2 的整体结构。
一个请求在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来创建的。
- 大小: 74.7 KB
分享到:
相关推荐
很不错的struts运行原理深刻解说,初学者很受用
struts2 的运行机制可以分为以下几个步骤: 1. 客户端在浏览器中输入一个 url 地址。 2. 这个 url 请求通过 http 协议发送给 Tomcat。 3. Tomcat 根据 url 找到对应项目里面的 web.xml 文件。 4. 在 web.xml 里面会...
《Struts2技术内幕:深入解析Struts2架构设计与实现原理》以Struts2的源代码为依托,通过对Struts2的源代码的全面剖析深入探讨了Struts2的架构设计、实现原理、设计理念与设计哲学,对从宏观上和微观上去了解Struts2...
Struts运行原理的理解对于任何Java Web开发者都至关重要,因为它提供了一种组织良好、可扩展的架构,使得开发人员能够更有效地管理应用程序的业务逻辑、视图呈现和控制流程。 1. **MVC模式**:Struts基于MVC设计...
《Struts2技术内幕:深入解析Struts2架构设计与实现原理》以Struts2的源代码为依托,通过对Struts2的源代码的全面剖析深入探讨了Struts2的架构设计、实现原理、设计理念与设计哲学,对从宏观上和微观上去了解Struts2...
Struts2是Struts1.x和WebWork两个社区合作的结果,可以认为是WebWork的一个进化版本,继承了WebWork的核心机制并在此基础上进行了优化和封装。 在Struts2的工作机制中,FilterDispatcher是一个关键组件,它是一个...
### Struts2技术内幕——深入解析Struts2架构设计与实现原理 #### 一、Struts2概述 Struts2是Struts框架的第二代版本,它是在Struts1的基础上进行了大量的改进和完善后诞生的。Struts2不仅继承了Struts1的核心思想...
在本文中,我们将深入探讨Struts2的原理和实践,以一个简单的登录示例来阐述其关键组件和工作流程。 首先,我们来看一下开发Struts2应用的基本步骤: 1. **定义视图(Views)**:视图通常由JSP页面组成,负责展示...
Spring通过Java的反射机制,在运行时动态地创建和装配对象。这样做的好处是可以降低组件之间的耦合度,提高代码的可测试性和可维护性。 此外,Spring还提供了面向切面编程(Aspect-Oriented Programming,简称AOP)...
Struts2的工作原理深入探讨了其内部机制和核心组件,对于理解框架如何处理请求、路由到相应的Action以及渲染响应至关重要。 首先,Struts2并非Struts1的简单升级,而是融合了WebWork的核心,因此在设计和工作流程上...
《Struts2技术内幕:深入解析Struts2架构设计与实现原理》由国内极为资深的Struts2技术专家(网名:downpour)亲自执笔,iteye兼CSDN产品总监范凯(网名:robbin)以及51CTO等技术社区鼎力推荐。 本书以Struts2的...
2. **配置与注解**:Struts2支持XML配置和注解配置,允许开发者通过struts.xml或Action类上的注解定义Action、结果类型、参数映射等。这使得配置更加简洁,同时也支持运行时动态配置。 3. **OGNL(Object-Graph ...
- **Hello Struts2**:通过创建一个简单的“Hello World”示例,帮助开发者快速上手Struts2的基本配置和运行流程。 - **Action类详解**:Action类是Struts2的核心组件之一,负责处理用户的请求并返回相应的结果。...
在运行机制上,当用户发起一个HTTP请求时,Struts框架通过配置的struts-config.xml文件(在Struts 2中为struts.xml)来解析请求,找到对应的Action。配置文件定义了URL到Action的映射、Action的执行路径、结果页面等...
本文将深入探讨Struts2的工作流程,从客户端请求到服务器响应的全过程,帮助读者全面理解Struts2框架的运行机制。 #### 客户端请求与Servlet容器 一切始于客户端的一次HTTP请求,该请求指向运行在Tomcat或类似...
### Struts2配置与工作原理详解 #### 一、Struts2概述 Struts2是Apache Struts项目下的一个开源框架,它继承了Struts1的一些特性,同时又结合了WebWork框架的优点,使得它在Java Web开发领域具有很强的竞争优势。...
以上就是关于Struts2的一些基础知识点,学习Struts2不仅可以帮助理解MVC模式在实际应用中的工作原理,还能提升Java Web开发的技能。通过观看教学视频,结合实践操作,可以更好地掌握这些概念和技术。
在提供的“struts2 demo”压缩包中,你可以找到这些概念的具体实现,包括Action类、视图页面、配置文件等,通过分析和运行这些示例,你可以深入理解Struts2的工作原理和用法。这个压缩包对于初学者来说是一个很好的...
#### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 WebWork 2,它融合了 Struts 1 的...
**Struts2与Struts1框架原理详解及流程图** Struts2和Struts1是两种广泛应用于Java Web开发中的MVC(Model-View-Controller)框架,它们为开发者提供了结构化、可维护的代码组织方式,提高了开发效率。本文将深入...