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。
FilterDispatcher是控制器的核心,就是mvc中c控制层的核心。下面粗略的分析下我理解的FilterDispatcher工作流程和原理:FilterDispatcher进行初始化并启用核心doFilter
其代码如下:一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。如上文中将结构返回“add.jsp”,但大部分时候都是返回另外一个action,那么流程又得走一遍………
分享到:
相关推荐
"struts2体系结构.txt"文件可能包含了更详细的文本描述或更深入的技术细节,比如配置示例、拦截器链的配置以及Action和Result的定义等。 了解Struts2的体系结构对于理解它的工作原理和优化应用性能至关重要。开发者...
### Struts2入门实例教程详解 #### 一、环境搭建与基本配置 在开始学习Struts2框架之前,首先需要确保开发环境的正确搭建。根据提供的文档,所使用的开发工具为MyEclipse6,Web服务器为Tomcat6,Struts版本为...
13.2.1 系统用例图 13.2.2 需求规格说明书 13.3 系统设计 13.3.1 设计视图层 13.3.2 设计持久层 13.3.3 设计业务逻辑层 13.3.4 设计控制层 13.4 架构设计和环境搭配 13.4.1 网上调查系统采用的架构 13.4.2 在Eclipse...
《网上图书订购系统基于Struts2、Hibernate与Prototype的实现详解》 网上图书订购系统是电子商务领域中的一个重要组成部分,它提供了便捷的购书体验,使用户可以在线浏览、选择并购买书籍。本系统采用的技术栈主要...
《STRUTS2个人通讯录管理系统详解》 STRUTS2个人通讯录管理系统是一款基于STRUTS2框架、集成MySQL数据库、实现用户登录验证、图片分页上传功能的应用程序。这款系统旨在为用户提供一个便捷、高效的个人通讯录管理...
13.2.1 系统用例图 13.2.2 需求规格说明书 13.3 系统设计 13.3.1 设计视图层 13.3.2 设计持久层 13.3.3 设计业务逻辑层 13.3.4 设计控制层 13.4 架构设计和环境搭配 13.4.1 网上调查系统采用的架构 13.4.2 在Eclipse...
### Struts2原理分析 #### 一、Struts2架构概览 Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用框架。它将Web应用程序分为模型(Model)、视图(View)和控制器(Controller)三个部分,...
创建一个新的Java Web项目,并导入所有必要的运行库文件,包括Struts 2和Hibernate的相关JAR包,以及其他的依赖库如Servlet API、JDBC驱动等。确保你的项目构建路径包含了这些库文件。 3. **配置Hibernate** 在...
Struts2是一个流行的Java Web框架,它极大地简化了MVC(模型-视图-控制器)应用程序的开发。在Struts2中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置对象的属性。这篇博客将...
Struts2标签库详解 Struts2作为一款强大的MVC框架,其标签库是其核心功能之一,极大地简化了开发者在视图层的工作,提高了开发效率。本文将深入解析Struts2标签库,帮助读者理解并掌握其用法。 1. **简介** ...
在Struts2中,命名空间(Namespace)是一个重要的概念,用于组织和分隔应用程序的不同部分,使得配置更加清晰和模块化。文件上传功能则是Struts2提供的一种方便用户上传文件的机制,对于处理如图片、文档等上传需求...
相比于其前身Struts1,Struts2提供了更强大的功能集,包括更加灵活的配置方式、丰富的拦截器机制以及更为简洁的代码结构。Struts2不仅继承了Struts1的优点,如清晰的MVC分离、易于维护和扩展等,还在许多方面进行了...
【Struts2宠物诊所系统详解】 Struts2作为一款经典的MVC(Model-View-Controller)框架,被广泛应用于Java Web开发中。本系统“基于Struts2的宠物诊所系统”充分利用了Struts2的强大功能,构建了一个集系统管理、...
在"Struts 2+Hibernate+Spring整合开发技术详解"这本书中,作者蒲子明深入浅出地讲解了这三大框架的整合使用。随书源码包含第19至21章的内容,主要涉及的是实际项目中的两个应用场景:BBS论坛系统和Photo System照片...
13.2.1 系统用例图 13.2.2 需求规格说明书 13.3 系统设计 13.3.1 设计视图层 13.3.2 设计持久层 13.3.3 设计业务逻辑层 13.3.4 设计控制层 13.4 架构设计和环境搭配 13.4.1 网上调查系统采用的架构 13.4.2 在Eclipse...
《图书管理系统:基于Struts2与Hibernate的实现详解》 图书管理系统是信息技术在图书馆管理中的典型应用,旨在提高图书管理的效率和准确性。本系统采用经典的Struts2框架结合Hibernate持久化技术,构建了一个功能...
在本文中,我们将深入探讨如何整合Struts2框架与JasperReport3来创建动态报表,并利用iReport工具进行报表设计。Struts2是一个流行的Java Web应用程序框架,它提供了MVC(模型-视图-控制器)架构,而JasperReport则...