1.1 Struts Framework 介绍
Struts是一种当前非常流行的一个Java Web 框架(Web Framework)。
我们先来看看什么是 Framework 。
Framework 概念并不是很新了,伴随着软件开发的发展,在多层的软件开发项目中,可重用、易扩展的,而且是经过良好测试的软件组件,越来越为人们所青睐。这意味着人们可以将充裕的时间用来分析、构建业务逻辑的应用上,而非繁杂的代码工程。于是人们将相同类型问题的解决途径进行抽象,抽取成一个应用框架。这也就是我们所说的 Framework 。
Framework 的体系提供了一套明确机制,从而让开发人员很容易的扩展和控制整个 Framework 开发上的结构。 通常, Framework 的结构中都有一个“命令和控制”组件( "command and control" component )—— Framework Factory and Manager 。
通过基于请求响应( Request-Response )模式的应用 Framework ,基本上有如下几个表现逻辑结构组成。
控制器 ( Controller )——控制整个 Framework 中各个组件的协调工作。
业务逻辑层 ( Business Logic )——对 Framwork 本身来说,这里仅仅只是概念和几个提够服务的基础组件,真正的实现与客户的业务逻辑接轨,还需要开发人员在 Framework 上再次扩展。
数据逻辑层 ( Data Logic )——绝大应用系统都需要涉及到数据交互,这一层次主要包括了数据逻辑和数据访问接口。对于数据逻辑来说,如果你了解数据建模( Data Modeling )可能就很容易理解。
Struts 是采用 Java Servlet/JavaServer Pages 技术,开发 Web 应用程序的开放源码的 framework 。 采用 Struts 能开发出基于 MVC(Model-View-Controller) 设计模式的应用构架。
Struts 有如下的主要功能:
1. 包含一个 controller servlet ,能将用户的请求发送到相应的 Action 对象。
2. JSP 自由 tag 库,并且在 controller servlet 中提供关联支持,帮助开发员创建交互式表单应用。
3. 提供了一系列实用对象: XML 处理、通过 Java reflection APIs 自动处理 JavaBeans 属性、国际化的提示和消息。
Struts 官方网站: http://jakarta.apache.org/struts
Struts2.X 最新的稳定版本: 2.1.8 下载地址: http://struts.apache.org/download.cgi#struts218
Struts1.0 最新的稳定版本: 1.3.10 下载: http://struts.apache.org/download.cgi#struts1310
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
,但是它的应用用并不尽如人意
Model 1
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
来处理逻辑