首页>参考读物>计算机科学与技术>软件与程序设计

J2EE 核心模式
作者 : (美)Deepak Alur John Crupi Dan Malks
译者 : 牛志奇 丁天 田蕴哲 等
出版日期 : 2002-01-01
ISBN : 7-111-09511-1
定价 : 35.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 300
开本 : 16开
原书名 : Core J2EE Patterns
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书主要描述J2EE关键技术的模式、最佳实践、设计策略和经过验证的解决方案。涉及J2EE包括的15个模式的分类和大量的策略,可以使读者更好地掌握Java技术。本书适合J2EE的爱好者、程序员、设计师、开发者和技术管理者参考。

图书前言

本书主要讲述企业版Java 2平台(J2EE)的模式。J2EE模式为J2EE平台软件应用设计者提供典型问题的解决方案。本书中所有模式都经过了用户的J2EE应用验证。 
  本书主要描述经过验证的J2EE平台解决方案,着重于J2EE的以下关键技术:Java服务器页面(Java ServerPages,JSP)、Servlet、EnterpriseJavaBeans(EJB)组件、Java消息服务(Java Message Service,JMS)、JDBC和Java命名与目录接口 (Java Namingand DirectoryInterface,JNDI)。通过J2EE模式目录和J2EE重组来提供对J2EE平台重复出现问题的解决方案。你可以应用这些思想开发新系统或完善现有系统的设计。本书中的模式可以使读者快速掌握并精通开发强壮、高效企业应用系统的技能。
  无论是现在还是过去,很多人都错误地以为学习技术和学习设计是一回事。当然,学习技术是进行成功设计的重要环节,因为设计需要技术。现在有很多优秀的Java书籍,它们只讲述技术细节,却不涉及如何应用技术。学习设计则与此不同,它主要来自成功或失败的经验和教训。
  本书讲授的经验来自我们在这个领域内的亲身实践。我们隶属于Sun Microsystems公司的Sun Java Center(SJC)咨询机构。在我们的工作中,经常会遇到这样的情况:由于技术发展得太快,设计者和开发者们总是费力地去理解和掌握技术细节,却不会想到如何利用技术来进行设计。
  只是一味地指导设计者和开发者去写好的代码并不是一个好主意,或者只是建议使用Servlet和JSP去开发表示层和使用EJB组件○去开发业务层等也是不够的。
  因此,从以上分析中我们就可以回答下列问题:一个积极的J2EE设计者不仅要知道应该做什么,而且还应知道不该做什么。什么是最佳实践 什么是失败的实践 如何才能成功实现从问题到设计到实施的过程 SunJava Center(SJC)和J2EE模式目录
  从诞生的那天起,SJC的设计者就和全世界的用户一起去成功地设计、构筑、建造和发布各种基于Java和J2EE的系统。SJC是一个快速成长的咨询机构,并且至今还不断地有经验丰富的设计师加入。
  当我们意识到需要捕捉和共享那些经过验证的设计和构架以后,便在1999年开始将我们对J2EE平台的经验积累整理、归档成模式的形式。尽管我们参考了现有的许多文献,但还是无法找到一个可以代表J2EE平台模式目录。我们发现,很多文献都涉及一个或多个J2EE技术细节,并且详细地讲述了这些技术细节,甚至介绍了最细微的差别。有些书籍还通过描述一些
   对于初次接触J2EE平台的读者,请参见第2章“J2EE平台概述”,主要讲述J2EE平台和这些相关技术。设计注意事项来扩充这些技术细节。
  自从2000年7月我们在JavaOne大会上首次公开宣传我们关于J2EE模式的思想后,得到了来自设计师和开发者们热烈的响应。一些人表示很想进一步了解模式;而另一些人则坚持这并不是一个新鲜事物,因为他们以前应用过模式,只是从未命名它们或形成文档而已。总之,所有这些对J2EE平台模式的热情关注促使我们将此项工作继续进行下去。
  因此,我们开始整理J2EE平台的模式目录,并于2001年3月在Java Developer Connection中首次形成,同时将beta版在整个J2EE社区中试用。在广泛的Java团体反馈基础上,我们以beta版为基础,形成了本书的内容。
  我们希望这些模式、成功的实践和策略、失败的实践以及J2EE平台的重组,能够与带给我们好处一样,也给读者带来收获。
  本书主要内容
  本书主要讲述以下内容:
  .使用J2EE平台模式。
  在搜集和整理关于J2EE平台经验的基础上,我们在本书中形成了模式目录。J2EE模式目录描述了与设计和构筑J2EE平台应用有关的各种成功实践。本书着重于下列四种J2EE技术:Servlet、JSP、EJB组件和JMS。
  .应用成功的实践去设计应用(使用JSP、Servlet、EJB组件以及JMS技术)。仅仅学习技术细节和API是不够的。学习使用技术如何进行设计同样重要。我们整理出的经验,是JSP、Servlet、EJB组件和JMS等技术的成功实践。
  .形成J2EE平台的设计和构架,可以避免他人重复劳动。模式可以使设计重复使用。重复使用已知的解决方案可以缩短设计和开发应用的周期,包括J2EE的应用在内。
  .识别现存设计中失败的地方,使用J2EE模式重组为更好的解决方案。知道可以做什么当然好,但知道不可以做什么也同样重要。因此,本书也记述了一些我们经历的设计J2EE平台应用失败的实践。
  本书不包括以下内容:
  ·如何使用Java或J2EE技术编程。
  本书不讲述如何编程。尽管本书内容很大程度上以J2EE技术为基础,但我们却不讲述具体的API。如果读者想要学习Java或J2EE编程,有许多很好的书籍和在线资源可供参考。如果读者想要学习具体的技术细节,我们特别推荐使用位于Java官方网站http://java.sun.com上的在线教程。在该网站的主页上还有正式的J2EE技术详述。
  .使用什么样的过程和方法论。
  我们不建议使用任何类型的过程或方法论,因为本书所述内容与这两者均无关系。因此,本书不会讲述任何关于项目中的过程或方法论。如果读者想了解过程和方法论,有许多阐述各种面向对象方法论的书籍和有关初级过程的新书,如《Extreme Programming》(超级编程)等。
  ·如何使用UML。
  本书不讲述有关UML的知识。我们广泛地使用UMIJ(特定的类和图表系列)的目的是来归档模式、描述静态和动态的交互操作。如果读者想更多地了解UML,请参考Grady、Booch、IvarJacobson和James Rumbaugh所著的《UMLUser Guide》 (UML用户指南)和《UMLReferenecmanual》(UML参考手册)。(这两本书已由机械工业出版社引进出版。——编者注)
  本书适用读者
  本书适用于所有J2EE的爱好者、程序员、设计师、开发者和技术管理者。一句话,适用于对设计、构筑和开发J2EE平台应用的所有人。
  我们希望本书能成为J2EE设计师有益的培训指南。因为我们知道一个好的设计项目的重要性,因此我们需要本书来指导。
  使用这些经过整理的模式、成功的实践和失败的实践去共享、传递知识和经验,可以提高开发团队的整体素质和产品价值,我们衷心地希望本书能够做到这一点。
  本书结构
  本书分为三部分:
  第一部分:模式和J2EE。本部分由第1章和第2章组成。
  第1章:引言。简要介绍一些概念,包括模式、J2EE平台、模式定义和模式目录等,最后介绍J2EE模式的类型。
  第2章:J2EE平台概述。为J2EE初学者全面介绍J2EE平台概况,也适用于想了解J2EE最新内容的读者。
  第二部分:设计注意事项、失败的实践和重组。主要介绍JSP、Servlet和企业beans的设计注意事项。此外还包括J2EE平台失败的实践和重组。本部分由第3章、第4章和第5章组成。
  第3章:表示层设计注意事项和失败的实践。
  第4章:业务层设计注意事项和失败的实践。
  第3、4章分别讲述了表示层和业务层设计注意事项和失败的实践。设计注意事项指出了J2EE的开发者、设计者、设计师应用J2EE平台时需要考虑的问题。该章节中涉及到的概念,读者可参照其他文献(如正式的说明书或有关这些概念的书籍),以获得更多的信息。
  第5章:J2EE重组。讲述来自我们实际工作中的重组经验,这些重组使原本不是很好的解决方案变得更加完善。重组是本书后面要讲述的另外一个重要内容,我们相信它对模式目录有非常大的帮助。本章内容很大程度上得益于Manin Fowler和他的著作《Refactoring》。对于了解《Refactoring》的读者来说,一定非常熟悉本章的形式,但本章内容全部是关于J2EE技术层面的,而Manin Fowler的书则从另外的一个角度来描述重组。
  第三部分:J2EE模式目录。讲述了J2EE模式的类型。J2EE模式目录体系中包含15个模式类型,这些模式类型构成了本书的核心内容。本部分由第6章、第7章、第8章、第9章和第10章组成。
  第6章:J2EE模式总览。概要介绍了J2EE模式类型。从本章开始详细介绍模式的思想,解释了将模式分为层的方法。同时还说明了本书中讲解模式所用的模板。本章讲述了所有J2EE的模式类型,并使用图表说明它们之间内在的联系。此外,还在模式类型中提出了“路标”的概念。“路标”向公共J2EE设计和结构相关的问题给出提供这些问题解决方案的模式和重组。理解模式之间的关系和路标的概念是应用的关键。
  第7章:表示层模式。介绍了与使用Sevlet、JSP、JavaBean和自定义标签来设计J2EE平台基于Web应用相关的六个模式类型。在这些模式中,提供了大量的实现策略,并且讲述了一些具有普遍性的问题,如请求处理、应用分割和生成复杂的界面等。
  第8章:业务层模式。介绍了与使用EJB技术来设计J2EE平台业务组件相关的七个模式类型。该章中的模式提供了使用EJB和JMS技术最好的实践。同时,这些模式也涉及了其他方面的技术,如JNDI和JDBC等。
  第9章:集成层模式。介绍了与用于集成J2EE应用、资源层及外部系统相关的两个模式类型。这些模式主要应用于使用JDBC和JMS集成业务层和资源层的组件。
  第10章:J2EE模式应用。介绍了使用这些模式的一个具体实例。探讨并展示了这些模式是怎样联系在一起的。该章强化了这样一个概念:模式存在于一个相互关联的环境中。每一个模式都支持其他模式,同时也被其他模式所支持。
  联系信息
  在官方网站上,我们将提供本书的更新信息和其他参考资料,具体地址为:http://www.phptr.com/corej2eepatterns.
  J2EE模式兴趣小组的邮件地址为:j2eepatterns—interest@java.sun.com。该地址向大家开放,欢迎参加。欲加入该兴趣小组并浏览相关文档,请访问:http://archives.java.sun.com/archives/j2eepatterns—interest.html。

图书序言

在软件行业里,模式最能体现一个公司所具有的特点。模式对普遍的问题提供了通用的解决方法。在某一个公司或者在某一个领域内,命名并确立一个模式往往意味着正式形成了一个普遍的、被以往经验证实正确的解决方案。在开发中,拥有一个好的模式语言等于拥有一个强大的专家队伍:通过使用众多模式中的一个,就会从专家们来之不易的知识中获取极大的收益。好的模式也并不是大量存在的,因为首先要发现模式,然后在现有系统中运行成功之后再推出。因此,在一个成熟的模式中,包含大量的去粗取精、去伪存真的过程,也包含设计者总结出来的大量基本原理和启示。
  模式很深奥,很有用且早已存在,你也许会说:“我以前用过。”其实真正的“模式”你以前也许没用过,这样的模式最终将会使你的系统变得更为简单。
  模式不仅可以帮助你建立简单可执行的系统,而且可以帮助你建立完美的程序。在时间就是金钱的今天,写一个十全十美的程序往往是不可能的,更多的时候只是努力去创造合格的产品,这对于专业人士来说不能不是一种遗憾。但是,如果能够较好地使用模式,完全可以提高系统的完美性。否则,是不可能做到这一点的。
  本书的作者在书中贡献了一系列非常有实用价值的模式。J2EE确实是一个非常了不起的平台,它能使团队开发出功能非常强大的系统。然而事实上,在J2EE提供的抽象和服务与团队最终必须建立的应用之间仍然存在着很大的差距。本书所涉及的模式正是一步步缩小这种差距的解决方案。通过应用这些模式,可以找到降低软件风险的主要路径:编写更少的软件。你不用自己去发掘这些解决方案,相反,可以直接使用现成的模式,因为它们已经在现有系统中被证实是正确的。
  除了命名一系列模式以外,作者还使用UML来详细解释它们的语义,以便模式更容易被理解。另外,本书还说明了如何应用这些模式,如何利用它们来重组系统等。总之,还是前面的那句话:利用模式就等于拥有一个强大的专家队伍。
                            Grady Booch
                            Rational软件公司首席科学家


作者简介

(美)Deepak Alur John Crupi Dan Malks:暂无简介

译者简介

牛志奇 丁天 田蕴哲 等:暂无简介

译者序

最近几年,J2EE技术作为建立企业应用的标准平台出现,并且逐渐成熟。该平台为开发和配置企业应用提供坚实、稳固服务的同时,也显示出了它的挑战性。开发者经常无法分清学习技术和利用技术学习设计的区别。在本书中,Sun Java Center的资深设计师、Sun Java咨询机构等与读者一起分享他们丰富的J2EE技术经验。
  本书主要描述J2EE关键技术的模式、最佳实践、设计策略和经过验证的解决方案。J2EE关键技术包括Java ServerPages(JSP)、Servlet、Enterprise JavaBeans(EJB)、Java Message Sorvice(JMS)等。其他的J2EE技术,如JDBC和JNDI,也因与模式相关而在本书中有所描述。J2EE所包含的15个模式的分类和大量的策略均为本书所述的内容,它们可以使读者更好地掌握Java技术。
  本书不但具有一定的理论深度,而且还非常实用。通过对本书的学习,完全可以理解在理论部分所讲解的知识,最终实现理论和实践的紧密结合。
  我们很荣幸有机会承担本书的翻译工作。在翻译过程中,我们经常为一句话、一个术语进行反复的讨论,到处查找资料,力图使本书能正确、贴切地反映原文的意思,同时注意使句子、段落符合中国人的语言习惯。我们真挚地希望读者能够从本书中有所收获,这是作者的初衷,也是我们的良好愿望!
  本书由牛志奇、丁天、田蕴哲组织翻译,万方工作室的全体同仁都参加了本书的翻译、校正和录入等工作。参加本书翻译、录排、校对工作的人员为:牛志奇、丁天、葛丽、罗贤锋、罗浩、王宾、赵伟、夏欣伟、李红玲、孙南、田敏、龚露娜、马军、马丽、田军、牛献忠、田蕴哲、金荣学、薛彪、叶哲、邓海燕、邢倩、王育红、李军、刘彬、钱斌、赵策、姜南、李浩、王天凌、李林、张巧莉、范玉春、袁雷、邓涛、李卓林、聂宛析、王小将、李素丽、天海鹏等。本书的出版是集体劳动的结晶,在此特别感谢万方工作室的全体工作人员。
  由于时间仓促,且译者经验和水平有限,译文难免有不妥之处,恳请读者批评指正。
                              万方工作室
                              2001年8月

图书目录

第一部分 模式和J2EE
第1章 引言
1.1 什么是J2EE
1.2 什么是模式
1.2.1 模式的形成历史
1.2.2 模式定义
1.2.3 模式分类
1.3 J2EE模式目录
1.3.1 模式目录的不断发展
1.3.2 如何使用J2EE模式
1.3.3 使用模式的好处
1.4 模式、构架和重用
1.5 小结
第2章 J2EE平台概述
2.1 概述
2.1.1 应用服务器--新型应用
2.1.2 Java技术的集成
2.1.3 J2EE平台的兴起
2.1.4 J2EE价值地位
2.2 J2EE平台
2.2.1 J2EE构架
2.2.2 Java 2标准版
2.2.3 J2EE应用组件和容器
2.2.4 标被服务
2.2.5 J2EE平台角色
2.2.6 配置描述符
2.3 J2EE模式和J2EE平台
2.4 小结
第二部分 设计注意事项、失败的实践和重组
第3章 表示层设计注意事项和失败的实践
3.1 表示层设计注意事项
3.1.1 会话管理
3.1.2 控制客户端访问
3.1.3 校验
3.1.4 helper属性--集成和一致
3.2 表示层失败的实践
3.2.1 多视图的控制代码
3.2.2 向业务层提供表示层数据结构
3.2.3 为域对象提供表示层数据结构
3.2.4 允许重复表单提交
3.2.5 为客户端直接访问暴露敏感资源
3.2.6 假设<jsp:setProperty>将重置bean的属性
3.2.7 创建"胖"控制器
第4章 业务层设计注意事项和失败的实践
4.1 业务层设计注意事项
4.1.1 使用会话bean
4.1.2 使用实体bean
4.1.3 缓冲企业bean远程引用和句柄
4.2 业务和集成层失败的经验
4.2.1 把对象模型直接映射到实体bean模型
4.2.2 把关系模型直接映射到实体bean模型
4.2.3 把每个用例映射为一个会话bean
4.2.4 通过Cetter/Setter方法展现所有的企业bean属性
4.2.5 在客户端嵌入服务查找
4.2.6 把实体bean用作只读对象
4.2.7 把实体bean用作细粒度对象
4.2.8 存储完整的与实体bean相关的对象图

教学资源推荐
作者: 【美】梁勇(Y.Daniel Liang) 著
作者: 刘振安 刘燕君 孙忱
作者: 邱李华 曹青 郭志强 编著
作者: Brian W.Kernighan,Dennis M.Ritchie
参考读物推荐
作者: [印度] 科斯?拉曼(Kirthi Raman)著
作者: 华为Docker实践小组 著
作者: [美]史蒂夫·斯卡格尔(Steve Scargall) 著
作者: 于俊 向海 代其锋 马海平 著