Struts
体系结构是目前基于
java
的
web
系统设计中广泛使用的
mvc
构架。
基本概念
Struts
是
Apache
基金会
Jakarta
项目组的一个
Open Source
项目,它采用模型
-
视图
-
控制器(
Model-View- Controller
,简称
MVC
)模式,能够很好地帮助
java
开发者利用
J2EE
开发
Web
应用。和其他的
java
架构一样,
Struts
也是面向对象设计,将
MVC
模式
"
分离显示逻辑和业务逻辑
"
的能力发挥得淋漓尽致。
Structs
框架的核心是一个弹性的控制层,基于如
Java Servlets
,
JavaBeans
,
ResourceBundles
与
XML
等标准技术,以及
Jakarta Commons
的一些类库。
Struts
有一组相互协作的类(组件)、
Serlvet
以及
jsp tag lib
组成。基于
struts
构架的
web
应用程序基本上符合
JSP Model2
的设计标准,可以说是一个传统
MVC
设计模式的一种变化类型。
Struts
有其自己的控制器(
Controller
),同时整合了其他的一些技术去实现模型层(
Model
)和视图层(
View
)。在模型层,
Struts
可以很容易的与数据访问技术相结合,如
JDBC / EJB
,以及其它第三方类库,如
Hibernate / iBATIS
,或者
Object Relational Bridge(
对象关系桥
)
。在视图层,
Struts
能够与
JSP
,包括
JSTL
与
JSF
,以及
Velocity
模板,
XSLT
与其它表示层技术。
Struts
为每个专业的
Web
应用程序做背后的支撑,帮助为你的应用创建一个扩展的开发环境。
Struts
的体系结构与工作原理
MVC
即
Model-View-Controller
的缩写,是一种常用的设计模式。
MVC
减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。
MVC
的工作原理
,
如下图
1
所示:
图
1
Struts
是
MVC
的一种实现,它将
Servlet
和
JSP
标记(属于
J2EE
规范)用作实现的一部分。
Struts
继承了
MVC
的各项特性,并根据
J2EE
的特点,做了相应的变化与扩展。
Struts
的体系结构与工作原理如下图
2
所示:
图
2
从图
2
中我们可以知道,
Struts
的体系结构包括模型(
Model
),视图(
View
)和控制器(
Controller
)三部分。
下面让我们从
MVC
角度来看看
struts
的体系结构(
Model 2
)与工作原理:
1
)模型(
Model
)
在
Struts
的体系结构中,模型分为两个部分:系统的内部状态和可以改变状态的操作(事务逻辑)。内部状态通常由一组
Actinform Bean
表示。根据设计或应用程序复杂度的不同,这些
Bean
可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的
bean
调用。比如购物车
bean
,它拥有用户购买商品的信息,可能还有
checkOut()
方法用来检查用户的信用卡,并向仓库发定货信息。
小型程序中,操作可能会被内嵌在
Action
类,它是
struts
框架中控制器角色的一部分。当逻辑简单时这个方法很适合。
建议用户将事务逻辑(要做什么)与
Action
类所扮演的角色(决定做什么)分开。
2
)视图(
View
)
视图主要由
JSP
建立,
struts
包含扩展自定义标签库(
TagLib
),可以简化创建完全国际化用户界面的过程。目前的标签库包括:
Bean Tags
、
HTML tags
、
Logic Tags
、
Nested Tags
以及
Template Tags
等。
3
)控制器(
Controller
)
在
struts
中,基本的控制器组件是
ActionServlet
类中的实例
servelt
,实际使用的
servlet
在配置文件中由一组映射(由
ActionMapping
类进行描述)进行定义。对于业务逻辑的操作则主要由
Action
、
ActionMapping
、
ActionForward
这几个组件协调完成的,其中
Action
扮演了真正的业务逻辑的实现者,
ActionMapping
与
ActionForward
则指定了不同业务逻辑或流程的运行方向。
struts-config.xml
文件配置控制器。
Struts
体系结构中的组件
图
3
上图
3
显示了
ActionServlet (Controller)
、
Actionform (form State)
和
Action (Model Wrapper)
之间的最简关系。
体系结构中所使用的组件如下表:
ActionServlet
控制器
ActionClass
包含事务逻辑
Actionform
显示模块数据
ActionMapping
帮助控制器将请求映射到操作
ActionForward
用来指示操作转移的对象
ActionError
用来存储和回收错误
Struts
标记库 可以减轻开发显示层次的工作
.NET
中如何使用
Struts
的设想
1
)模型(
Model
)
这里写业务层。
2
)视图(
View
)
视图当然指的是
.apsx
文件。
3
)控制器(
Controller
)
这里是一个转向控制器,由
xml
配置完成,就像真正的
struts
一样。
这里提的是一个简化的,精炼
struts
思想的
.net
版本使用方法。
例子如下:
一个用户注册系统,用户通过网页输入相关信息:注册
ID
号,密码,
EMAIL
,若注册成功,则返回成功提示信息,反之出现注册失败提示信息。
注册页面:
reguser.aspx
配置文件:
Struts-config.xml
:
<Struts-config>
<forward name="failure" path="/ messageFailure.aspx"/>
<forward name="success" path="/ messageSuccess.aspx"/>
</Struts-config>
核心代码:
如果,注册成功,转向
“success”
,而
“success”
是什么页面由配置文件决定;这样就分离了
view
(界面层)和
Controller
(控制层),有业务层(
Model
)由控制层来访问,这样界面层就可以专心于其美工设计。也许你会说这只不过是个页面导航。
关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。
分享到:
相关推荐
Struts 体系结构与工作原理 Struts 体系结构是目前基于 Java 的 Web 系统设计中广泛使用的 MVC 架构。Struts 是 Apache 基金会 Jakarta 项目组的一个 Open Source 项目,它采用模型 - 视图 - 控制器(Model-View-...
浅析Struts 体系结构与工作原理.doc
Struts 的工作流程如下: - 用户发送 HTTP 请求到服务器。 - ActionServlet 捕获请求,根据 struts-config.xml 文件解析并找到对应的 ActionMapping。 - 根据 ActionMapping,ActionServlet 创建或复用一个 ...
阅读提供的文档如"Struts体系结构.doc"和"struts概念和体系结构.pdf"将进一步深入理解Struts框架的内部工作原理和最佳实践。 总的来说,Struts框架通过其模块化的结构和丰富的组件,为Java Web应用提供了强大且灵活...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web...了解Struts2的体系结构对于理解它的工作原理和优化应用性能至关重要。开发者可以根据需求选择合适的组件和配置,以实现高效、灵活的Web应用开发。
二、Struts 概念和体系结构 Struts 框架由一系列相互协作的类、Servlets 和 JSP 标签库构成。它符合 JSP Model2 规范,是对 MVC 设计模式的一种实现。Struts 的控制器是核心组件,负责接收用户请求并调度相应的业务...
在 Struts 体系结构中,ActionServlet 作为 Controller,ActionForm 保存用户输入的数据状态,而 Action 类封装了具体的业务逻辑。ActionServlet 接收到请求后,通过 ActionMapping 查找对应的 Action,Action 处理...
Struts2的体系结构主要包括了请求接收与分发、Action调用、拦截器处理、视图呈现等多个组件的协同工作,形成了一个高效的MVC框架。 总之,Struts2通过其核心组件如`Dispatcher`、`ActionProxy`、`ActionInvocation`...
三、Struts的工作原理 1. 用户发起HTTP请求,到达Web服务器,被ActionServlet拦截。 2. ActionServlet根据`struts-config.xml`配置文件解析请求,并创建相应的ActionForm对象,填充用户输入的数据。 3. Action...
**Struts** 的体系结构主要由以下几部分构成: - **视图(View)**:用户界面,通常由JSP页面实现。 - **模型(Model)**:包含业务逻辑和数据模型的部分,通常通过JavaBean来实现。 - **控制器(Controller)**:...
《Struts2技术内幕——深入解析Struts2架构设计与实现原理》这本书深入讲解了这些内容,包括但不限于Action的设计模式、Interceptor的实现原理、ValueStack的工作流程、以及Struts2与其他框架的整合策略,对于想要...
#### Struts框架的概念与体系结构 Struts框架由一系列协同工作的类、Servlet以及JSP标签库构成,它遵循JSP Model 2的设计规范,本质上是对MVC(Model-View-Controller)设计模式的一种变体应用。Struts不仅限于一组...
Struts framework的工作原理和组件 7 Struts ActionServlet控制器对象 8 Struts Action Classes 8 Struts Action Mapping 9 使用ActionForward导航 10 Struts ActionForm Bean捕获表单数据 11 Struts的其他...
### Struts框架原理与实践详解 #### 一、Struts框架概述 Struts是一个开源的Java Web应用框架,主要用于构建动态的Web应用程序。它通过提供一套预定义的组件和服务,帮助开发者快速构建出结构清晰、易于维护的Web...
#### 二、Struts的概念与体系结构 **Struts**是一个基于Java的Web框架,主要用于构建动态的Web应用程序。它采用MVC(Model-View-Controller)设计模式,其中模型代表应用程序的数据和业务逻辑,视图用于展示数据,...
- **插件体系结构**:Struts的插件体系结构使其具有高度的可扩展性,可以通过插件添加额外的功能。 ### 三者结合的优势 将Struts、Spring和Hibernate结合使用,可以创建出一个功能强大且灵活的Web应用程序框架。...
首先,Struts1的体系结构由以下几个关键部分组成: 1. **ActionServlet**:这是核心控制器,作为Servlet在`web.xml`中配置,负责接收HTTP请求,并根据`struts-config.xml`中的配置来调度请求。当Web服务器启动时,...
2.2 **STRUTS体系结构** - **模型(Model)**:主要由JavaBeans组成,存储系统状态和执行商业逻辑。 - **视图(View)**:通常使用JSP页面和表示组件来显示数据。JSP可以包含Java代码,用于动态渲染HTML。 - **控制器...
Struts的体系结构主要包括三个主要部分:视图(View)、模型(Model)和控制器(Controller)。 - **视图**:视图负责呈现用户界面,通常由JSP页面或HTML组成。 - **模型**:模型包含业务逻辑和数据管理,它与...