Struts 原理与应用(一)

原创 2003年12月07日 22:36:00

本文是俺在公司技术会议上的演讲提纲

算是一个小教程吧。

Struts 原理与应用 2003年12月1日

Chapter 1: MVC Architecture

介绍Struts的理论基础,MVC架构

Chapter 2: J2EE N-tiers Structure

介绍J2EE的n层结构以及Struts所处的位置

Chapter 3: Struts Configuration

Struts的基本安装说明

Chapter 4: Example 1: Basic Framework

一个最简单的例子,用来熟悉Struts的基本用法

Chapter 5: Struts Work Flow

介绍Struts的工作流程

Chapter 6: Example 2: Login Application

Struts提供的example,简单登陆程序。

Chapter 7: Taglib and Other Skills

介绍Taglib在Struts中的应用,以及其他相关功能

Chapter 8: Other Web Framework

Struts与其他Framework的比较

 

Chapter 1: MVC Architecture

Struts principle and practice

模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。

1 模型(Model)
模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.

2 视图(View)
视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。

3 控制器(controller)
控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。

MVC 式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性

早期的程序中,如果不注意对数功能和显示的解耦合,常常会导致程序的复杂及难以维护。很多VB,Delphi等RAD程序都有这种问题。甚至现在的C#,Java有时候也会出现把业务逻辑写在显示模块中的现象

管MVC设计模式很早就提出,但在Web项目的开发中引入MVC却是步履维艰。主要原因:一是在早期的Web项目的开发中,程序语言和HTML的分离一直难以实现。CGI程序以字符串输出的形式动态地生成HTML内容。后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在HTML内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。二是脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础。直到基于J2EE的JSP Model 2问世时才得以改观。它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能

JSP Model 1 与 JSP Model 2

SUN在JSP出现早期制定了两种规范,称为Model1和Model2。虽然Model2在一定程度上实现了MVC,但是它的应用用并不尽如人意

JSP Model 1

JSP Model 2

model2 容易使系统出现多个Controller,并且对页面导航的处理比较复杂

有些人觉得model2仍不够好,于是Craig R. McClanahan 2000年5月 提交了一个WEB framework给Java Community.这就是后来的Struts.

2001年7月,Struts1.0,正式发布。该项目也成为了Apache Jakarta的子项目之一

Struts 质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑

Chapter 2: J2EE N-tiers Structure

Struts principle and practice

早期的网络系统设计常常采用三层结构。最常见的结构,就是表示( presentation )层 , 领域( domain )层 , 以及基础架构( infrastructure )层。

n层结构的提出是为了适应当前B/S模式开发WEB Application的需要而提出的。传统的Brown模型是指:表示层( Presentation ),控制 / 中介层( Controller/Mediator ),领域层( Domain ) , 数据映射层( Data Mapping ) , 和数据源层( Data Source )。它其实就是在三层架构中增加了两个中间层。控制 / 中介层位于表示层和领域层之间,数据映射层位于领域层和基础架构层之间。

J2EE规范提出了自己的n-tiers结构。

下表是几种模型的对照

ISA

Brown

J2EE

对应程序部分

表示层

表示层

客户层

浏览器 HTML 页面, XSL, 手机客户端等

服务器表示层

JSP 及 ActionForm ,XML

控制 / 中介层

Controller 控制器及 Action

领域层

领域层

业务层

Javabeans / SessionBean /Session Facade

数据映射层

整合层

EntityBean / JDO / Hibernate / JDBC

数据层

数据源层

资源层

RDBMS 数据库

J2EE的基本原则之一,是使得各个层的实现解除耦合或耦合最小化。最终实现可以任意的切换某个层的实现。

例如,在数据映射层,可以采用EJB的BMP,CMP,也可以采用Hibernate等O/RMapping,或者采用JDO。这由部署的环境来决定。


 

详细分析spring与struts2的整合原理

详细分析spring与struts2的整合原理
  • canot
  • canot
  • 2016年02月19日 15:52
  • 3625

Struts 2详细工作流程及原理

Struts 2详细工作流程      Struts2工作原理及流程      Struts2框架的基本思想是采用MVC设计模式,即将应用设计成模型(Model)、视图(View)和控制器(Co...
  • liuyinghui523
  • liuyinghui523
  • 2015年09月08日 14:31
  • 3623

struts2原理-深入理解(转)

struts2原理-深入理解 转自:http://www.cnblogs.com/yan5lang/archive/2009/07/23/1529407.html Action的定义 传统...
  • huludownload
  • huludownload
  • 2013年04月25日 23:30
  • 1758

深入了解Struts2返回JSON数据的原理及具体应用范例

早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身,渐渐的也淡忘了此事。直到前两天有同事在工作中遇到这个问题,来找...
  • Michael_HM
  • Michael_HM
  • 2016年04月06日 23:13
  • 222

深入了解Struts2返回JSON数据的原理及具体应用范例

早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身,渐渐的也淡忘了此事。直到前两天有同事在工作中遇到这个问题,来找...
  • Feelingslw
  • Feelingslw
  • 2014年10月19日 10:36
  • 226

mvc模式在spring和struts2中应用及原理

mvc在spring中的原理 (1)启动服务器,根据web.xml 的配置加载前端控制器(也称总控制器) DispatcherServlet 。在加载时、会完成一系列的初始化动作。 (2)根据se...
  • ikuailes
  • ikuailes
  • 2013年01月04日 19:33
  • 750

深入了解Struts2返回JSON数据的原理及具体应用范例

早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身,渐渐的也淡忘了此事。直到前两天有同事在工作中遇到这个问题,来找...
  • cao478208248
  • cao478208248
  • 2014年05月10日 20:39
  • 652

深入了解Struts2返回JSON数据的原理及具体应用范例

早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身,渐渐的也淡忘了此事。直到前两天有同事在工作中遇到这个问题,来找...
  • Thinkingcao
  • Thinkingcao
  • 2017年01月04日 13:09
  • 122

深入了解Struts2返回JSON数据的原理及具体应用范例

早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身,渐渐的也淡忘了此事。直到前两天有同事在工作中遇到这个问题,来找...
  • Lvmodel
  • Lvmodel
  • 2013年12月11日 17:37
  • 599

深入了解Struts2返回JSON数据的原理及具体应用范例

来源:http://yshjava.iteye.com/blog/1333104
  • gqltt
  • gqltt
  • 2014年05月17日 12:01
  • 474
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts 原理与应用(一)
举报原因:
原因补充:

(最多只允许输入30个字)