04

Struts In Action完整pdf下载

StrutsinAction.rar

作者:堕落天使 Tags:

十二 06

4.配置Struts 组件

本章内容

† Web应用部署描述符
† Struts配置文件
† 应用资源文件
† Ant的构建文件

Change alone is unchanging. —Heraclitus (c 535–c 475 B.C.)

4.1. 三个 XML文件和一个属性文件
除了Java 类和JSP 页面之外,开发人员必须创建或者修改几个配置文件以便能够使Struts 应用能运转起来,这些文件包括:

web.xml. 这是Java Servlet 要求的web 应用部署描述符。Servlet/JSP 容器使用这个文件来载入和配置你的应用。

struts-config.xml. Struts 框架的部署描述符。它用来载入和配置Struts 框架使用的各种组件。

Build.xml. Jakarta Ant 构建工具使用它来编译和部署你的应用。使用Ant 不是必需的,但它在Struts 开发人员中很流行。

Application.properties. 该文件为你的Struts 应用提供资源。像build.xml 文件一样,它不是严格要求的,但是大多数Struts 应用都要用到。

尽管处理这些文件看起来也许不象是在进行“Java 开发”, 但是正确的使用它们却是使你的web 应用能拿得出手的基本要求。在这一章,我们会仔细讨论这些文件的工作原理,以及它们能对你的应用的开发和部署起什么作用。

4.1.1. 家族的其他人员 阅读全文 »

作者:jock

十二 06

 
A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.

—Excerpt from the notebooks of Lazarus Long, from Robert Heinlein’s Time Enough for Love

3.1. 被支柱支撑的支柱

现在,各种团队都在编写各种各样的web 应用。在应用中使用分层架构 [POSA] ,如第1 章和第2 章所述,可以很容易地让团队的成员分别专注于应用的不同部分。但是,仍然很有必要让团队的每个人都从头到尾理解整个处理流程。在我们深入探究Struts 的各部分是如何优雅的相互结合之前,让我们先从头开始构建一个简单但有用的程序。在这一章,我们将通过教程、逐步解剖来和Struts 来一个亲密接触,然后构建一个供用户登入和登出的程序。

虽然没有第一章的例子显得细微,我们仍然暂时保持例子的简单性。在第4 章才会涉及到一个实际的应用。

在本章,我们将从用户的角度来讨论一个经典的登录logon 应用。第一章的练习只是对从注册页面输入的密码信息进行比较,根据是否匹配来控制页面流的分支跳转。该应用让您使用第1 章的练习所创建的账户来进行实际登录。控制流和页面内容的改变取决于你的状态。

引入这个应用后,我们将对它进行分解来仔细探讨其各个部分。如果你的机器上安装了Struts 开发环境,你可以跟着来做。当然,你也可以舒服地靠在你的椅子上,喝着卡普契洛咖啡,来看它是如何工作的。

然后,打好基础后,我们就开始一步步构建这个应用。 阅读全文 »

作者:jock

十二 06

2.1. Talking the talk
本章深入探讨Struts 框架,以及它能给你的应用开发所带来的诸多好处。我们相信,一旦你也能“随便谈谈”web 架构和设计,你就可以很好的在你的应用中使用Struts。

为了能对Struts 架构有个充分的全面印象,我们将总体介绍Struts 的控制流和它处理请求-响应事件循环的方式。只有彻底理解这个处理原理才能最好的在应用中使用这个框架。

选择一个web 应用框架不应该是个漫不经心的决定。很多人都可以使用这本书,特别是用这章的内容,来评价Struts 是否适合它们的项目。因此,我们在这章的最后部分将有一个关于Struts 优缺点的客观评价,并阐明其总体性能。

Struts 设计来针对专业开发人员。为做出正确的决策,专业人员应该知晓工具的能力和限制。

2.2. 为什么我们需要Struts

今天的web 应用基本上都是代表共同理念的关键组件。通常,开发团队需要在有限的时间里创建应用,然后它们不得不正确的构建,并能持续构建它。

Java web 开发人员已经有一些工具可用来建立表现层,比如JavaServer Pages 和 Velocity 模板。也有一些机制来处理数据库—如JDBC 和Enterprise JavaBean (EJB)。但我们用什么来将它们集合在一起?我们已经有了型材和砖墙…还缺什么呢?

2.2.1. 退一进三

在上世纪80 年代,当GUI 被发明时,软件架构认为,应用具有3 个主要部件:

管理数据的部件,创建屏幕和报表的部件,以及处理用户交互和子系统交互的部件[Ooram]。

在90 年代早期,ObjectWorks/Smalltalk 编程环境将这个三角结构引入为一个开发框架。按Smalltalk 80 的说法,数据系统称为模型Model,表现系统称为视图View,而交互系统称为控制器Controller 。许多现代开发环境,包括Java 的Swing, 都使用Model/View/Controller (MVC) 架构作为它们的基础架构。

图 2-1 MVC 架构

Java web 开发者已经有很多有用的工具,比如JDBC 和 JSP, 作为 Model 和 View 的手段,但作为控制器的工具和组件在哪?

2.2.2. 进入 Struts

Struts 的核心是一个MVC 风格的控制器。Struts 控制器搭起了Model 和View 之间的桥梁。框架也包括开发人员想用来开发可伸缩的、先进的应用系统的其他组件。Struts 是一个“ 隐藏支柱”的集合,帮助开发人员将分散的材料,如数据库和页面,结合成一个整体的应用系统。

2.2.3. Struts控制器组件

Struts 控制器组件是一个可编程的组件集,允许开发人员定义它们的应用如何准确地和用户进行交互。这些组件在逻辑名称后面隐藏了令人讨厌的、繁琐的实现细节。开发人员可以一次性编写这些实现细节,然后转头考虑它们的应用应该做什么,而不是考虑应用应该如何做。

用户通过超链接和HTML form 与Web 应用程序进行交互。超链接引导页面显示数据和其他内容,如文本和图像。表单通常通过一些定制动作向应用提交数据。

图 2-2 主要Struts 组件

如图5 中所示, Struts 提供了开发人员可用来定义超链接,表单,和定制动作这些交互的相关组件。我们已经使用这些组件在第1 章创建了一个入门程序。第3 章,我们还要用它们来创建另一个程序。然后,在第4 章,我们将讨论这些组件的详细配置。随后的章节,将详细讨论如何将每个组件以及如何用在你的程序之中。在第4 章,我们将展示如何在运行的程序上下文中使用这些组件。但是,因为这一章是架构性的总体介绍,所以我们继续介绍Struts 的主要部件。

 
超链接

对应用开发人员来说,超链接是指向应用中某些资源的路径。这些资源可能是web 页面,或者是定制动作。超链接中也可以包含特殊的参数。在Struts 中,开发人员可以将超链接定义为一个ActionForward 。

这些对象都有个逻辑名称和一个path 属性。这使得开发人员可以设置path,然后通过名称来引用ActionForward。ActionForward 通常在一个XML 文件中定义,这个配置文件在Struts 启动时载入。Struts 使用 XML 定义来创建Struts 配置,包括一个ActionForward 的列表。可用来创建到欢迎页面链接的ActionForward 对象的XML 元素看起来可能像:

这个元素事实上是创建了一个 ActionForward JavaBean ,其name 属性设置为welcome, path 属性设置为/pages/index.jsp。

JSP 页面和其它组件就可以引用这里定义的welcome 转发。Struts 框架将查找welcome ActionForward bean 并获取其path 属性以完成这个超链接。这样开发人员可以改变链接的目标而不用改变所有引用该链接的相关组件。在很多Web 应用中,象这样的细节被硬编码到JSP 或 Java code 中,使维护变得困难并且容易发生错误。在Struts 应用中,这些细节可以通过应用配置来改变,而不用触及到具体的页面和Java 类。

HTML表单 阅读全文 »

作者:jock

十二 06

1.1. 关于本书
欢迎你阅读《Struts In Action》。本书的目的是帮助Web 应用开发者能够最好的使用Struts
web 应用框架。
Struts 是一个开源软件,有助于开发者更加快速和容易地建立Web 应用程序。Struts 依靠
绝大多数开发者已熟知的标准技术—比如JavaBeans, Java servlet, 以及 JavaServer Page
(JSP)。通过基于标准的技术,“填空式”的软件开发方法,Struts 可以减轻在创建新项目时
那些令人抱怨的极费时间的工作。
1.1.1. 谁创建了Struts?
Struts 是Apache 软件基金下Jakarta 项目子项目。除Struts 之外, 还有其他成功的开源产
品,包括Tomcat, Ant, 和 Velocity。
开始的代码基础从2000 年5 月开始开发,直到2001 年6 月,1.0 版本发布。有 30 多个开
发者参与进来,并有数千人参与到讨论组中。Struts 代码基础由一个志愿者团队来管理。
到 2002 年,Struts 小组共有9 个志愿者参与。
Struts 框架的主要架构设计和开发者是Craig R. McClanahan。Craig 也是Tomcat 4 的主
要架构师,以及Java Web Services Developer Pack 的主要架构师和实现者。他现在是Sun
的JavaServer Faces (JSR-127) 以及J2EE 平台的Web 层架构的规范领导。
Struts 在Apache 软件许可 [ASF, License]下对公众是免费的。 使用此软件没有任何获得
和再现成本。不象其他一些开源许可协议,Apache 软件许可对商业用途是友好的。你可以
在你的商业项目中使用Struts,并自由分发Struts 库。你也可以将Struts 组件集成到你的
框架中,就像他们是你自己编写的一样。详细情况,参见Apache Software License,
www.apache.org/LICENSE。
1.1.2. 为什么Struts 要开源?
现在有许多非常优秀Java 程序和框架都是开源项目。有许多的开发人员为这些项目工作,
他们同时又在诸如 IBM, Sun Microsystems, 以及 Apple 这样的公司从事其日常工作。
这类软件的开发式协作有利于整个软件市场。今天,许多开源组件都集成到商业产品之中。
公司可以向其客户出售其专业的文档,保证支持服务水平,以及其他有价值的售后服务和增
值服务。
当软件是自由的时候,对市场来说它更容易得到支持。Struts 就是个典型例子。虽然它还
只是个很新的产品,也已经有很多文章和教程涉及到它,但却还没有什么象样的书籍。
许多开发团队不喜欢使用不是自己内部开发的软件。开源组件提供了所有自行开发的软件的
优点,但绝不会将你锁定在一个只有你们团队才懂的专有解决方案上。
开源软件对所有人都是双赢的。
1.1.3. 为什么叫Struts?
这个框架之所以叫“Struts”,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我
们踩高跷时候的支撑。 这也是一个对Struts 在开发Web 应用程序中所扮演的角色的精彩
描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件
工程师使用Struts 为业务应用的每一层提供支持。
什么是应用框架?
框架(framework)是可重用的,半成品的应用程序,可以用来产生专门的定制程序
[Johnson]。象人一样,软件应用的相似性比不同点要多。它们运行在相似的机器上,期望
从相同的设备输入信息,输出到相同的显示设备,并且将数据存储到相同的硬盘设备。开发
传统桌面应用的开发人员习惯于那些可以覆盖应用开发同一性的工具包和开发环境。构架在
这些公共基础上的应用框架可以为开发人员提供可以为他们的产品提供可重用服务的基础
架构。
框架向开发人员提供一系列具有以下特征的骨架组件:

作者:jock