一个请求在Struts2框架中的处理大概分为以下几个步骤:
1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求.
2 这个请求经过一系列的过滤器(Filter).(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3 接着核心控制器FilterDispatcher被调用,FilterDispatcher询问ActionMapper(Action映射器)来决定这个请是否需要调用某个Action.
4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy.
5 ActionProxy通过Configuration Manager(配置管理器)询问框架的配置文件,找到需要调用的Action类.
6 ActionProxy创建一个ActionInvocation的实例。
7 ActionInvocation实例使用命名模式来调用,回调Action的execute方法,该execute方法获取用户请求参数,然后执行某种数据库操作。在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper.
在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的.
建立一个Java Web项目,提取最少运行Struts2应用的包集合(摘自Struts官方文档):
Install the Minimum Set of Libraries and Configuration Files
The following files are a minium requirement for your application.
Filename Description
struts2-core.jar Framework library itself, found in distribution root directory
xwork.jar XWork 2 library on which Struts 2 is built (version 2.0 or later)
ognl.jar Object Graph Navigation Language (OGNL), the expression language used throughout the framework
freemarker.jar All UI tag templates are written in Freemarker (also a good option for your own views)
commons-logging.jar Commons logging, which the framework uses to support transparently logging to either Log4J or JDK 1.4+
web.xml Java web application configuration file that defines the filters (and other components) for your web application
struts.xml Framework configuration file that defines the actions, results, and interceptors for your application
If any Struts 2 Plugins are included, then other JARs may be needed too. For example, the optional Spring Plugin requires the Spring JARs to be present.
分享到:
相关推荐
struts核心架构分析图struts核心架构分析图struts核心架构分析图struts核心架构分析图
### Struts框架分析与应用 #### 一、MVC模式概述 MVC(Model-View-Controller)是一种软件架构模式,旨在将应用分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于清晰地区分...
STRUTS框架结构是Java Web开发中的一个经典框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的强大工具。在"运用STRUTS框架结构的电子商务系统JSP源码"中,...
1. 框架结构:Struts2的核心组件包括Action、Result、Interceptor(拦截器)等。Action是业务逻辑处理的中心,Result负责视图展示,而Interceptor则在Action调用前后执行,提供诸如日志、事务管理等功能。 2. 请求...
Struts框架结构 Struts是Apache Jakarta项目组的一个开源项目,它基于Web的MVC模型。MVC设计模式通过控制器分离模型和视图,实现了层间的松耦合,增强了系统的灵活性、可复用性和可维护性。在Web应用中,MVC模型...
为了更直观地理解Struts框架的工作原理,我们通过一个全面预算管理系统中的预算资料模块来具体分析: 1. **构建视图**: - 使用JSP页面作为视图的展示层,利用Struts提供的自定义标签来简化页面开发。 - 在Struts...
首先,了解Struts框架的基本结构是非常重要的。它主要由以下组件构成: 1. **ActionServlet**:这是Struts框架的核心,负责处理所有的HTTP请求,并根据配置文件(struts-config.xml)调度到相应的Action。 2. **...
**标题解析:** "重构mvc实现struts框架" 这个标题表明了我们要探讨的主题是关于软件开发中的重构过程,特别关注的是如何从一个简单的MVC(Model-View-Controller)模型出发,逐步演进到实现Struts框架的初步形态。...
Struts框架是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在1990年代末由Apache软件基金会的Jakarta项目推出。MVC模式是一种将业务逻辑、用户界面和数据访问分离开来的方法,使得代码更...
Struts框架的结构分析显示,它主要包括ActionServlet、Action类、ActionFormBean、struts-config.xml文件等组件。其中,ActionServlet作为控制器组件的核心,负责接收所有的HTTP请求,并根据配置文件中的信息来转发...
通过上述分析可以看出,Struts框架为Java开发者提供了一个强大且灵活的工具,帮助他们构建高质量的Web应用程序。通过对MVC模式的理解和Struts框架的具体应用,开发者可以更高效地组织代码结构,提高应用程序的可维护...
Struts框架是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它主要用来...通过解压并分析"leave.sql"和"leave"文件,可以深入理解其内部结构和工作原理,进一步学习和研究Struts框架的运用。
通过对Struts2源码的深入研究,开发者可以更好地理解其内部工作原理,从而优化应用性能,解决实际问题,以及设计出更符合框架精神的代码结构。同时,这也为面试中展示自己的技术深度和问题解决能力提供了有力的支持...
Struts2框架是Java Web开发中的一个流行框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了一种结构化和可扩展的方式来构建应用程序。此压缩包文件包含的是Struts2的源码,特别适合初学者研究和学习...
【基于Struts框架的网上书店系统】是一种利用现代信息技术实现的电子商务平台,旨在解决传统书店与消费者之间的信息不对称问题,提高图书交易的效率。该系统以书籍为交易对象,结合了互联网的便利性,提供了丰富的...
Struts框架个人留言本系统是一个基于Java Web技术的简单应用,旨在帮助初学者理解并实践Struts框架的工作原理。这个系统由JSP(JavaServer Pages)作为视图层,JDBC(Java Database Connectivity)用于数据库交互,...
### 基于STRUTS框架的网上订房系统论文 #### Struts框架与MVC设计模式 Struts框架作为一款基于MVC(Model-View-Controller)设计模式的经典框架技术,在当前Web应用开发中占据着重要地位。MVC模式将应用程序分为三...
2. **配置文件解析**:查看`struts-config.xml`和`web.xml`,理解它们的结构和作用。 3. **Action的编写**:了解Action类如何处理请求,以及如何返回控制给JSP页面。 4. **JSP页面**:研究JSP页面如何显示表单和...
Struts框架是Java Web开发中...总的来说,Struts框架通过其清晰的MVC结构、丰富的标签库和灵活的扩展机制,极大地简化了Java Web应用的开发。尽管它面临一些挑战,但了解其原理对于理解现代Web框架仍然具有重要的意义。