《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
日
分享到:
相关推荐
JSF将是J2EE5.0中所包含的web开发框架,这应该是第一个成为jcp标准,并且随j2eesdk一起发布的web框架,可以看出sun对它的期望很高。JSF最大的竞争对手是tapestry,是apache的产品,但是apache又弄出了个myfaces,是...
### JSF实战——一本经典JSF教材 #### 知识点概述 本书是一部关于JavaServer Faces(简称JSF)的经典教程,由Kito D. Mann撰写,并由Ed Burns作序推荐,出版方为MANNING出版社。该书分为两大部分:第一部分主要...
《名师讲坛——Java开发实战经典》是一本深入探讨Java编程技术的著作,特别强调实践应用,适合初学者和有一定经验的开发者。书中的详细书签目录为读者提供了清晰的导航,使学习过程更为高效。作者在书中不仅讲解了...
《独门架构——JavaWeb开发应用详解》是一本深度探讨JavaWeb开发技术的专业书籍,旨在帮助已经具备Java基础知识的学习者和开发者进一步提升在Web领域的专业技能。本书详细讲解了JavaWeb开发中的各种核心概念、技术和...
《疯狂JAVA实战演义——源码》是一本深入解析JAVA编程实践的书籍,作者通过精心设计的15个实际应用开发案例,旨在帮助读者逐步掌握JAVA编程的核心技能,并提升其在实际开发中的应用能力。书中的每个实例都包含了完整...
此外,还会介绍基于JavaServer Faces (JSF) 的Web应用开发,让读者了解如何利用NetBeans的模板和组件库快速构建交互式Web应用。 企业级开发章节,将围绕Java EE(Enterprise Edition)展开,包括EJB(Enterprise ...
在"JSF实战附录"中,我们将深入探讨JSF的核心组成部分——标签和组件。 一、JSF标签 JSF标签是用于构建用户界面的XML元素,它们简化了UI组件的创建和管理。这些标签通常与特定的JSF组件关联,例如`h:inputText`用于...
《Java Web开发实战1200例》是针对Java Web开发者的一本详实教程,它以实例为主,全面覆盖了Web开发的各种技术和实践。第二卷更深入地探讨了这一领域,旨在帮助读者从初级到高级逐步提升技能。本书提供的三种电子书...
Java Web开发是将Java语言应用于Web应用程序的领域,它包括了Servlet、JSP(JavaServer Pages)、JavaServer Faces(JSF)等核心技术。本书可能详细讲解了以下几个关键知识点: 1. **Servlet**:Servlet是Java平台...
### 使用JSF、Spring与Hibernate构建实际Web应用 在当今高度数字化的世界中,构建高效、稳定且可扩展的Web应用程序已成为企业成功的关键因素之一。JavaServer Faces (JSF)、Spring框架与Hibernate作为Java世界中...
1.1 java web应用概述 1.2 配置开发环境 1.3 基础技术简单简介 1.4 核心框架初步认识 1.5 小结 第2章 myedipse开发工具对各种框架的支持 2.1 使用jsp的两种模式 2.2 struts框架的实现 2.3...
在“Java Web开发教程——入门与提高篇(JSP+Servlet)”这个教程中,你将系统学习这些知识点,逐步掌握如何使用Java进行Web开发,建立起从零到一的实战能力。无论是对HTTP协议的理解,还是对Java Web组件的运用,都...
课程目标是使学生理解Web编程的思想,熟悉主要的开发工具,并具备实战能力,以达到专业级的编程水平。大纲特别强调了基于Java的Web编程技术,因为这是目前行业中的主流,其安全性、分层架构和跨平台特性使其成为企业...
JSF是Java平台上的一个用于构建Web应用程序的组件模型框架,它极大地简化了用户界面的开发和维护。以下是对这些章节源代码中涉及的知识点的详细解析: 6. 面向组件的编程:这一章主要介绍了JSF的核心——组件模型。...
他的著作包括《精通NetBeans——Java桌面、Web与企业级程序开发详解》和《Java SE 6.0编程指南》,均为技术领域内的畅销书籍。 #### 二、《30天学通Java Web项目案例开发》特点 这本书旨在通过实践项目来提升学习...
【标题】:“richfaces实用例子”是一个基于Java的Web开发框架——RichFaces的实际应用示例。这个项目旨在展示如何在实际开发中利用RichFaces库来创建功能丰富的用户界面。 【描述】:描述中提到的工作环境预设已...
1、前言------为什么我们选择JSF,而不是其它framework 1 2、ArcGIS Server Java开发 JSF基础 2 3、ArcGIS Server Java ADF开发...29、Server Java开发--Born for SOA系列 通过代理类访问ArcGIS Server Web Service 84
Java Web是指使用Java技术进行Web应用开发的一系列技术和框架,包括Servlet、JSP、JavaServer Faces(JSF)等。其中,Servlet是Java Web的基础,用于处理HTTP请求;JSP则是一种动态网页技术,将业务逻辑和表现层分离...
- **李刚**:拥有近10年的Java EE应用开发经验。曾任LITEON公司的J2EE技术主管,负责企业信息平台的架构设计。在广州电信、广东龙泉科技等公司担任过技术培训导师。2007年3月26日被《电脑报》专访。创立了疯狂Java实...