`
hzbook
  • 浏览: 251930 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

《JSF Web应用开发实战》——原创精品系列

阅读更多

《JSF Web应用开发实战》——原创精品系列

 

《JSF Web应用开发实战》封面

 

书  名: JSF Web应用开发实战
作 者:麻地河;赵恒
出版社: 机械工业出版社 
书  号: 9787111240808
出版日期: 2008 年9月
定  价:65.00

<!----><!----> <!---->

 

内容简介:

    本书是 JavaServer Faces 技术的入门书籍。全书通过 50 多个范例,详细介绍了 UI 组件、页面导航、托管 Bean 和统一表达式语言 EL 、事件驱动、转换器、验证器、消息以及数据库访问及持久化等内容,从而系统阐述了 JSF 的技术要点。

<!----><!----><!----> <!---->

序言:

无知者无畏,此言不虚。 4 年前我首次接触 JSF 时,正是一个无知者,因为我所有的 Java 经验,只是一个“ Hello world ”程序,和 3 个月的 JSP 编程。

关于“ Hello world ”的记忆已经很遥远了,遥远到连年份都已模糊。只记得那是上个世纪九十年代,我是一名快乐的程序员,做着自己喜欢做的事,拿着令人羡慕的不菲薪水,生活紧张有序,人生充满期待。

Java 的“ Hello world !”没有给我留下什么印象,和 C 一样,甚至还不如 C ,至少, C Borland 公司的 IDE Java 有吗?用文本编辑器写代码,用字符界面输出信息,用命令行执行程序,没有比这个更落后的了。 Java 没有打动我,被塞到了书堆的最底层。于是,“ Hello world ”成了我唯一的也是全部的 Java 经验。

逝者如斯乎,不舍昼夜。“ Hello world ”之后,时间不曾为我作丝毫停留,转眼已是新世纪的第 4 个年头。春节刚过,满怀创业理想的我接到了下海后的第一个项目。那时的我经过多年的历练,已经是一个 C C++ Delphi PowerBuilder 高手,唯独对 Java 一无所知。可是,颇具戏剧性的是,这个项目客户竟然要求用 JSP 。可见造化弄人,连程序员也不放过。

程序是用 JBuilder 开发的,采用 JSP 技术,需求很简单,但我花了长达 3 个月的时间。求知的过程虽然伴随着发现和快乐,但也不乏挫折与痛苦。 JSP 让我很失望,彷徨中我从 Sun 的网站上下载了 J2EE Tutorial ,希望 Sun 给我指点迷津。不曾想,在 J2EE Tutorial 的第 17 章,遭遇了 JSF

The well-defined programming model and tag libraries significantly ease the burden of building and maintaining web applications with server-side UIs. With minimal effort, you can

<!---->· <!---->Wire client-generated events to server-side application code

<!---->· <!---->Bind UI components on a page to server-side data

<!---->· <!---->Construct a UI with reusable and extensible components

<!---->· <!---->Save and restore UI state beyond the life of server requests

看完这几行 E 文,我欣喜异常,这不正是我所需要的吗?组件模式、事件驱动以及数据绑定, JSP 的弱项在 JSF 中全部得到了加强!我对 JSF 非常满意,并且马上决定了,我的下一个技术目标就是 JSF

正应了那句俗语:“傻人有傻福。”采用 JSF 技术后, Web 编程如有神助,只用一个月时间,我和一个刚毕业的程序员写出了一个规模不小的 Web 程序: 126 张数据库表, 346 JSP 页面, 458K Java 源程序。即便是桌面应用,这样规模的程序在一个月内完成,老板也该偷着笑了。其实,效率的提高,完全是 JSF 的功劳。正如 Sun JSF 的规范中所宣称的那样, JSF 极大地简化了 Java Web 编程。

自从这次成功的经历后,我的所有 Java Web 项目都用 JSF 。随着对 JSF 认识的逐步加深,我开始有一种向别人推荐 JSF 的冲动。刚好有天在论坛上看到 IT168 编辑赵恒的约稿贴子,一时兴起就投了一篇,不想竟获发表。意外之余,信心大受鼓舞,随后又陆陆续续写了一些吹捧 JSF 的稿子。

某天和赵恒在 QQ 里聊起 JSF 的请求处理生命周期。在我初学 JSF 时,生命周期是我最大的障碍。不管我如何咬文嚼字地推敲 JSF 规范中关于生命周期的描述,我都无法弄明白到底专家们在说什么。甚至直到我完成了我的首个 JSF 程序的开发,我还是不懂。这让我十分的惴惴不安,时时担心自己误入歧途。不论是 Sun Tutorial ,还是 JSF 的官方规范都把生命周期放在“头版头条”的位置,一开篇就大肆推销生命周期概念,生命周期真的那么重要吗?

这绝对是一个错误!生命周期是 JSF 的核心,但不是程序员的必修课,初涉 JSF 的程序员,根本没有必要浪费精力在生命周期晦涩的概念里纠缠,不懂生命周期,照样可以用 JSF 来编程。花很少的时间看看各个 UI 组件的功能和属性,然后弄明白各类事件的含义以及应该如何响应这些事件,了解一下 JSF 可配置的页面导航机制,再搞清楚 Managed Bean 是什么东西,马上就可以动手编写你的第一个 JSF 程序了!

生命周期当然重要,不理解生命周期是难以在 JSF 中深入下去的。“但是,”在 QQ 上,我随口说道,“如果有机会让我来写 JSF 教程的话,我会完全不管生命周期,或者最多把它放在最后一章,等大家都有了 JSF 的实践经验和感性认识,再来深入剖析 JSF 的生命周期,才能水到渠成,一点就通。”

没料到, QQ 上的信口雌黄,却促成了本书的编写,祸从口出的真理再次得到验证,从此我没有了爬山的时间和心情。好在赵恒不忍心我孤军奋战,答应和我一起写,让我多少有了些找到组织的感觉。他有一项分工,是给书稿提意见。别人或许不知,但我很清楚,给书稿提意见是需要一些勇气的。此前因为我在 IT168 上数次投稿,我们已经非常熟悉了。我的稿子都是他编辑的,因此他几番领教过我的坏脾气。我的脾气平时像唐僧,不过一旦编辑要我改稿子,就容易变成那只泼猴。我相信他在同意做本书的第二作者时,一定是豁出去了。

谢天谢地,到目前为止,赵恒的生命安全还没有受到来自我的威胁,但他远比我辛苦,这我是知道的。一方面要有理有节地与我讨论书本内容、行文风格、读者对象以及编写计划等,另一方面还要和出版社沟通交流,谈合同论斤两,殊为不易。赵恒,你是好样的!

本书开笔是在去年 3 月份,说实话,如果没有机械工业出版社陈冀康主编的帮助,我差不多要半途而废了。最困难的时候,我满脑子的文字,随手一写就是十几页,却不知道按什么线索组织。是冀康坚持要我放下细节,先完善目录和样章,并对样章的每一稿给出十分具体和专业的意见。如此这般往来复去,历时三个月,在冀康的指导下,终于定下了全书的大纲。大纲好比软件的设计,没有大纲而急于行文,正如没有设计而急于编码,只会事倍功半。冀康的经验,在关键时刻发挥了至关重要的作用。

说来惭愧,按协议,本书应该在半年前就完稿的。要不是冀康通融,恐怕我已经被追究违约责任了。全书 50 多个范例耗去我很多时间,而这些时间,都是冀康替我争取的,甚至在我告诉他尚需两周才能完稿时,他还慷慨地给了我四周时间,让我有机会对全书内容作最后的充实、更新和勘误,而他自己却把审稿的时间安排在了周六周日。

在此,真诚地对冀康说声谢谢,谢谢你的宽容,更谢谢你将自己宝贵的经验与我分享,你在本书编写过程中给予我的指导,不但影响了本书,还将继续影响我此后的写作生涯。

 

麻地河

2008 3 14


前言

这是一本 JavaServer Faces 技术的入门类书籍,且偏重于实用。穿插书中的 50 多个大小范例,是实用性的最好证明。

全书共分 12 章,除了一头一尾外,其余每章都介绍 JSF 的一个技术要点,同时辅以若干实例。

作为全书的开头,第一章是对 JSF 技术的概述。这章除罗列 JSF 的定义、设计模式、设计目标及几大优势外,还了介绍 JSF 的开发工具 NetBeans ,为后续章节打下基础。由于本书是以实用性为主的,因此,结合工具来讲解 JSF 会更容易理解。

第二章的核心是一个以 JSF 技术编写的登录页面。这章描述了登录页面的完整开发过程,还在每一步骤中结合 JSF 技术对设计和代码进行了的分析,以期让读者在完成这个范例的过程中,对 JSF 的整体架构产生一定的认识。

第三章是全书篇幅最大的一章,约 90 页,非常详细地介绍了 JSF 的基本 UI 组件,包括其用途、设计方法、各个属性的含义以及在编程时应注意的事项等。大部分的组件,都给出了范例,有些重要的或者难于理解的组件,范例还不止一个。 UI 组件是 JSF 的创新,也是 JSF 的基础,因此浓墨重笔是必须的。

第四章介绍 JSF 的页面导航技术,包括原理、配置方法以及和业务逻辑的集成等。 JSF 页面导航的特色在于“集中”二字,既便于设计,也容易维护,尤其在大规模 Web 应用中,优势更为明显。

第五章讨论托管 Bean 和统一表达式语言( EL )。了解 JSP 技术的读者对于 EL 可能并不陌生,但托管 Bean 一定是个新概念。这章没有大篇幅介绍托管 Bean 的原理以及 EL 的具体格式,而是将重点放在各种范围的托管 Bean 在实际编程中的用法上。

第六章包括 5 节,前两节论述 Java JSF 事件驱动模式的工作原理,后三节分别介绍了在 JSF 编程中非常重要的 3 种事件,即动作事件、值改变事件和阶段事件。对于每种事件,都说明了事件的触发时机、响应方法以及在实际编程中的用途。

第七章介绍 JSF 转换器,内容大致分为两部分,前几节分别介绍了转换器的编写、注册、托管和引用方法,最后一节全部是范例,每个范例说明转换器的一种编程方法。

第八章介绍 JSF 验证器,在结构上和第七章类似,先介绍了验证器的基本概念,最后以若干个范例结束。

第九章介绍 JSF 消息。 JSF 允许程序员以消息包的方式管理消息,并且消息包同时支持 Java 类和属性文件两种形式。本章讨论 JSF 消息的用法,并举例说明了诸如用自定义消息替换标准消息等实用编程技术。

第十章讨论 JSF 的数据库编程技术,包括在 JSF 应用中如何通过数据组件直接访问数据库,以及如何利用 Java 持久化技术 JPA 将数据库表映射为 Java 实体类。这两种技术在 JSF 数据库应用中被广泛采用,前者在小规模应用中大显身手,而后者则在大规模应用中找到用武之地。本书最大最完整的一个实例程序,采用的是 JPA 技术。

第十一章是一个完整的 JSF 应用开发过程实例,包括从需求分析、设计到编码的全过程,并且给出了详尽的需求文档、设计文档(包括数据库和业务逻辑)、页面设计以及详细设计和编码说明。这是一个具备基本功能的论坛系统,展示了 NetBeans JSF 应用开发的实际过程,能够帮助读者突破技术难点,尽快在实际项目中使用 JSF

第十二章是对全书 50 多个范例的总结,列出了所有范例程序及其演示的技术要点,并给出了各范例和章节的对照表。除此以外,这章还详细说明了如何使用随本书发行的光盘中的源代码,以确保读者能够的在自己的开发环境中顺利的打开、查看和运行范例程序。

作者水平有限,书中错误和遗漏在所难免,真诚希望得到广大读者的指正。任何意见和建议,请发邮件给 madihe@126.com ,同时,也期待和读者在邮件中探讨 JSF 技术,分享彼此的程序人生。

 

麻地河 赵恒

2008 3 15

 

 

 

 

分享到:
评论
3 楼 fantasybei 2008-11-15  
书的纸张的质量就不能提高点么?贵几块钱无所谓,好多经典的书都被你们给糟蹋了,nnd
2 楼 魔力猫咪 2008-11-06  
图片贴错了。
1 楼 qintao1203 2008-10-31  

相关推荐

Global site tag (gtag.js) - Google Analytics