`

Struts 体系结构与工作原理(图)

阅读更多

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体系结构与工作原理 想学struts吗?这个文档你可以参考一下。

    Struts的体系结构与工作原理

    Struts的体系结构与工作原理,学习struts

    浅析Struts 体系结构与工作原理.doc

    浅析Struts 体系结构与工作原理.doc

    Struts的结构

    文章的包括了如下七大部分: Framework的概念和体系简介 Struts的概念和体系结构 Struts的工作原理和组件 Struts配置文件简介 Struts高级特性 Struts标记库 一个简单的示例

    spring+struts+hibernate工作原理

    三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据...

    Struts教程(主要包括体系结构,配置文件,高级特性)

    Struts的体系结构, Struts framework的工作原理和组件 Struts配置文件简介 Struts高级特性(Struts Advanced Feature)

    struts的教程.doc

    Struts framework的工作原理和组件 7 Struts ActionServlet控制器对象 8 Struts Action Classes 8 Struts Action Mapping 9 使用ActionForward导航 10 Struts ActionForm Bean捕获表单数据 11 Struts的其他...

    java Struts教程

    Struts framework的工作原理和组件 7 Struts ActionServlet控制器对象 8 Struts Action Classes 8 Struts Action Mapping 9 使用ActionForward导航 10 Struts ActionForm Bean捕获表单数据 11 Struts的其他组件 12 ...

    Struts1.2构架详细介绍

    Framework的概念和体系简介 Struts的概念和体系结构 Struts的工作原理和组件 Struts配置文件简介 Struts高级特性 Struts标记库 一个简单的示例

    Struts2教程,很适用哦

    本文主要从概念上讲解什么是...二、 Struts的概念和体系结构(Struts Conception and Architecture) 三、 Struts的工作原理和组件(Struts Componennts) 四、 Struts配置文件简介(Struts Deployment Description)

    struts 教程 很好很详细

    Struts framework的工作原理和组件 7 Struts ActionServlet控制器对象 8 Struts Action Classes 8 Struts Action Mapping 9 使用ActionForward导航 10 Struts ActionForm Bean捕获表单数据 11 Struts的其他组件 12 ...

    STRUTS中文文档

    STRUTS中文文档,内容比较丰富 struts安装 Struts原理、开发及项目实施 Struts中的应用 Struts中的翻页实例 strtus整体架构及核心标签库的介 struts框架详细介绍 Struts的体系结构

    Struts教程学习Struts Framework

    本文主要讲解什么是Struts Framework,它的框架结构,组件结构,以及简单的配置讲解。 文章的包括了如下七大部分: ...Struts的概念和体系结构 Struts的工作原理和组件 Struts配置文件简介 Struts高级特性 Struts标记库

    Struts轻松入门教程

    本文主要讲解什么是Struts Framework,它的框架结构,组件结构,以及简单的配置讲解。...Struts的概念和体系结构 Struts的工作原理和组件 Struts配置文件简介 Struts高级特性 Struts标记库 一个简单的示例

    struts 入门教程

    Struts framework的工作原理和组件 7 Struts ActionServlet控制器对象 8 Struts Action Classes 8 Struts Action Mapping 9 使用ActionForward导航 10 Struts ActionForm Bean捕获表单数据 11 Struts的其他组件 12 ...

    很好的struts教程

    Struts的概念和体系结构 Struts framework的工作原理和组件 Struts配置文件简介 Struts高级特性 struts标签库 简单的示例

    struts养老保险系统设计与实现

    Struts框架的工作原理和实现机制后,应用Struts框架开发养老保险管理系统中 的参保人信息管理的子系统。针对占系统很大比例的数据的增、删、查、改操作中 抽象出了一个数据操作通用框架,此框架是使用数据访问对象...

    Java_Struts教程

    本文主要讲解什么是Struts Framework,它的框架结构,组件结构,以及简单的配置讲解。...Struts的概念和体系结构 Struts的工作原理和组件 Struts配置文件简介 Struts高级特性 Struts标记库 一个简单的示例

    Struts原理、开发及项目实施

    Struts的工作原理,如下图2所示: &lt;br/&gt; 控制:通过图2大家可以看到有一个XML文件Struts-config.xml,与之相关联的是Controller,在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet...

    Java 经典面试题!(面试者必备)

    Java中数据库连接池原理机制的详细讲解、 j2ee面试知识、 线程编程方面、 EJB方面、 浅析Struts 体系结构与工作原理、 JAVA相关基础知识.

Global site tag (gtag.js) - Google Analytics