分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

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)由控制层来访问,这样界面层就可以专心于其美工设计。也许你会说这只不过是个页面导航。
关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

Struts 体系结构与工作原理 图相关推荐

  1. 浅析Struts 体系结构与工作原理(图)

       Struts 体系结构是目前基于java的 web系统设计中广泛使用的mvc构架. 基本概念 Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用模 ...

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

       Struts 体系结构是目前基于java的 web系统设计中广泛使用的mvc构架. 基本概念 Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用模 ...

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

    2019独角兽企业重金招聘Python工程师标准>>> 请至以下链接处查看. http://blog.csdn.net/fenglibing/archive/2007/08/21/1 ...

  4. 【Educoder作业】冯·诺依曼体系结构及工作原理理解

    [Educoder作业]冯·诺依曼体系结构及工作原理理解 所有的那个实际场景模拟的题就不更了,没难度,趣味性更高. 这个题和我们之前的一篇博客里面的题只一模一样的,链接. 我们这里就不做任何讲解了,要 ...

  5. [小结]InnoDB体系结构及工作原理

    一.概述: innodb的整个体系架构就是由多个内存块组成的缓冲池及多个后台线程构成.缓冲池缓存磁盘数据(解决cpu速度和磁盘速度的严重不匹配问题),后台进程保证缓存池和磁盘数据的一致性(读取.刷新) ...

  6. 电子邮件的工作原理(图)

    电子邮件与普通邮件有类似的地方,发信者注明收件人的姓名与地址(即邮件地址),发送方服务器把邮件传到收件方服务器,收件方服务器再把邮件发到收件人的邮箱中.如下图所示: 更进一步的解释涉及到以下几个概念: ...

  7. Web搜索引擎工作原理和体系结构

    1.Web搜索引擎的基本要求 搜索引擎是一个网络应用软件系统,如下图所示,对它有如下基本要求. 能够接受用户通过浏览器提交的查询词或者短语,记作q,例如"大数据","Sp ...

  8. LVS负载均衡(3)——LVS工作模式与工作原理

    LVS介绍及工作原理 1. LVS 介绍 LVS,Linux Virtual Server 的简写,意即 Linux 虚拟服务器,是一个虚拟的服务器集群系统,可以在 UNIX/Linux 平台下实现负 ...

  9. 彩超探头频率高低的区别_超声波液位开关和液位开关的区别,它们的工作原理分别是什么?...

    近年来,随着电子技术和自动化的不断发展,液位测量与控制技术有很大的提高,日化产品.食品饮料.医药等行业的生产发展都不离不开液位的控制,可见液位传感器的重要性日益凸显,甚至直接影响产品的质量.下面我们了 ...

最新文章

  1. DHCP服务器禁用NetBios功能后引发WPAD失效解决方法
  2. 在P5QL上激活Windows Vista
  3. dotnetClub 的前世今生
  4. Mac Safari浏览器的阅读列表与iPhone、iPad (iOS)不同步的问题
  5. ShareREC SDK(iOS) 专用快速集成组件
  6. matlab低通滤波器库函数代码_【转】Matlab中模拟低通滤波器的函数
  7. 【Visual C++】游戏开发四十九 浅墨DirectX教程十七 三维天空的实现
  8. 运行剑灵与服务器断开,剑灵手游程序错误 和服务器断开解决方法
  9. 2016程序员你该爆发洪荒之力了!八招教你成功
  10. xxxxxxxxxxxxxxxxx
  11. NOIP2009 普及组 复赛 poly 多项式输出
  12. var与varchar
  13. 研发部的人员素质要求及自我培养
  14. HDU 1713 相遇周期
  15. 独孤思维:刷新赚钱认知
  16. 什么作用计算机辅助工艺,计算机辅助工艺规划
  17. 贵州计算机一级考试试题,贵州计算机一级考试内容及科目设.docx
  18. 你的电脑如何与别的电脑通信
  19. 微服务从零到一 什么是限流、熔断和降级
  20. IE8下JS报indexOf不存在问题

热门文章

  1. 华为云实时数据处理“三剑客”
  2. 大数据好还是不好_学python好还是大数据好?想学IT,但有点搞不清方向的人可以看看...
  3. 虚拟服务器dhcp,虚拟服务器上配置dhcp服务器
  4. Spark之SparkStreaming的DStream操作
  5. Redis集群如何安装
  6. 【pytorch】torch.cat()函数
  7. MySQL生产常用SQL语句汇总
  8. mysql数据库同步xtrab_热备份的实现方式
  9. 线程的生命周期 和 线程的通讯
  10. android 自定义域名,Android基于Retrofit2改造的可设置多域名的网络加载框架