上图来源于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来创建的。
分享到:
相关推荐
在本文中,我们将深入探讨Struts2的工作原理和源码分析,以帮助理解其内在机制。 1. **Struts2架构图**: 当一个HTTP请求到达服务器时,它首先通过一系列Filter(过滤器),包括ActionContextCleanUp,该过滤器...
通过分析这些图片,开发者能更直观地理解它们的工作原理,有助于提高开发效率和代码质量。在实际项目中,Struts负责控制流程,Spring提供全面的依赖管理和数据访问,而Hibernate则简化了数据库操作,三者结合可以...
### Struts2原理分析 #### 一、Struts2架构概览 Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用框架。它将Web应用程序分为模型(Model)、视图(View)和控制器(Controller)三个部分,...
Struts2是一个流行的Java Web框架,它简化了MVC(模型-视图-控制器)架构的实现。本文将深入探讨Struts2的...通过深入研究Struts2的源码,我们可以发现其内部工作原理,这对于解决复杂问题和开发自定义插件非常有帮助。
Struts2是Apache软件基金会的一个开源项目,是一个基于MVC(Model-View-Controller)设计模式的Java web应用...这份文档将帮助开发者深入理解Struts2的工作原理,从而更好地应用和优化框架,提高开发效率和系统性能。
Struts2 远程代码执行漏洞分析(S2-013) Struts2 是 Apache 官方的产品,最近出了一个远程代码执行漏洞,编号“S2-013”,目前是 0DAY,官方没有修补方案出现。这个漏洞出现在 includeParams 属性中,允许远程命令...
对于深入理解Struts2文件上传的工作原理,阅读源码是非常有帮助的。了解`FileUploadInterceptor`如何工作,以及`MultipartRequest`类如何解析Multipart请求,可以加深对整个过程的理解。 10. **实例实践** 博文...
src文件夹存放了Struts2框架源代码,便于深入学习和理解框架内部的工作原理。 对于快速入门者,通过分析Struts2框架提供的简单应用实例,如struts2-blank.war,能够迅速掌握如何设置和使用web.xml以及struts.xml...
总的来说,"都市供求信息网-struts2架构的例程序”是一个理想的实践平台,它让你有机会深入理解Struts2框架的工作原理,掌握Java Web开发中的MVC模式,以及如何结合SQL Server数据库实现数据持久化。通过分析和修改...
这个压缩包包含的是OGNL的2版本的源代码,这对于理解Struts2框架的工作原理以及OGNL语言的实现细节非常有帮助。 OGNL的主要功能是提供一种简洁的方式来获取和设置对象的属性,甚至可以处理复杂的对象图。例如,你...
Struts2是一个流行的Java Web框架,它为开发者提供了一种优雅的方式来构建可维护、可扩展且结构清晰的Web应用程序。...理解源码有助于你更好地掌握Struts2的工作原理,从而在遇到问题时能更高效地定位和解决。
源代码分析有助于深入理解其内部工作原理,优化应用性能,并进行自定义扩展。 1. **Struts2架构图** 请求在Struts2框架中的处理流程始于Filter链,其中Filter主要包括`ActionContextCleanUp`和`FilterDispatcher`...
本资源包含了一个已经配置好的Struts2实例,这对于学习和理解Struts2的工作原理和实践应用非常有帮助。 在Struts2框架中,`Action`类是核心组件,它负责处理用户请求并执行业务逻辑。开发者通常会创建自定义的...
该漏洞是由于Struts2的OGNL(Object-Graph Navigation Language)表达式处理不当导致的,OGNL是一种强大的脚本语言,用于在对象图中导航和操作数据。 3. **漏洞原理** 当用户提交的HTTP请求包含特定的OGNL表达式时...
### Struts 1.2 图片上传实例解析 #### 一、概述 在Web开发过程中,文件上传是一项常见的功能需求。...这对于初学者来说是一个很好的实践案例,有助于深入理解Struts框架的工作原理及其实现细节。
这些手册将帮助读者理解Struts2的工作原理和最佳实践。 "struts2.0-1.doc" 和 "struts2.0-2.doc"、"struts2.0-3.doc" 可能是一系列的文档,逐步介绍了Struts2的各个方面,可能包括版本更新、新特性、配置文件解析...
Struts网上图书商城是一个基于Struts框架开发的电子商务应用程序,主要功能是在线销售图书。Struts作为Java EE领域中的...通过学习和分析这个项目,开发者可以深入理解Struts框架的工作原理以及如何在实际项目中应用。
### Struts2源码解析及工作原理 #### Struts2简介 Struts2是一个流行的Java Web应用程序框架,它继承和发展了Struts1.x的一些特性,同时又采用了WebWork框架的核心技术,使得Struts2在设计理念和技术实现上都有了...
Struts2是一个强大的Java web...通过阅读源码,开发者能够更深入地理解Struts2的工作原理,从而在实际项目中更好地应用和优化框架。同时,对于提高问题排查能力、理解框架性能瓶颈以及解决潜在的安全问题也有很大帮助。
至于压缩包中的“struts.gif”,这可能是一个与Struts2相关的示例图或者框架结构图,用于直观地展示Struts2的工作流程或者关键组件间的交互。图片往往能帮助理解抽象的概念,使得学习过程更加直观。 总的来说,...