`
hzbook
  • 浏览: 259089 次
  • 性别: 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  

相关推荐

    web开发框架——JSF开发实战一(图)

    JSF将是J2EE5.0中所包含的web开发框架,这应该是第一个成为jcp标准,并且随j2eesdk一起发布的web框架,可以看出sun对它的期望很高。JSF最大的竞争对手是tapestry,是apache的产品,但是apache又弄出了个myfaces,是...

    JSF实战——一本经典JSF教材

    ### JSF实战——一本经典JSF教材 #### 知识点概述 本书是一部关于JavaServer Faces(简称JSF)的经典教程,由Kito D. Mann撰写,并由Ed Burns作序推荐,出版方为MANNING出版社。该书分为两大部分:第一部分主要...

    名师讲坛——Java开发实战经典 带详细书签目录版

    《名师讲坛——Java开发实战经典》是一本深入探讨Java编程技术的著作,特别强调实践应用,适合初学者和有一定经验的开发者。书中的详细书签目录为读者提供了清晰的导航,使学习过程更为高效。作者在书中不仅讲解了...

    独门架构——JavaWeb开发应用详解(电子版)

    《独门架构——JavaWeb开发应用详解》是一本深度探讨JavaWeb开发技术的专业书籍,旨在帮助已经具备Java基础知识的学习者和开发者进一步提升在Web领域的专业技能。本书详细讲解了JavaWeb开发中的各种核心概念、技术和...

    疯狂JAVA实战演义——源码

    《疯狂JAVA实战演义——源码》是一本深入解析JAVA编程实践的书籍,作者通过精心设计的15个实际应用开发案例,旨在帮助读者逐步掌握JAVA编程的核心技能,并提升其在实际开发中的应用能力。书中的每个实例都包含了完整...

    精通NetBeans——Java桌面、Web与企业级程序开发详解

    此外,还会介绍基于JavaServer Faces (JSF) 的Web应用开发,让读者了解如何利用NetBeans的模板和组件库快速构建交互式Web应用。 企业级开发章节,将围绕Java EE(Enterprise Edition)展开,包括EJB(Enterprise ...

    jsf实战附录,JSF标签,组件详细介绍

    在"JSF实战附录"中,我们将深入探讨JSF的核心组成部分——标签和组件。 一、JSF标签 JSF标签是用于构建用户界面的XML元素,它们简化了UI组件的创建和管理。这些标签通常与特定的JSF组件关联,例如`h:inputText`用于...

    Java Web开发实战1200例(第2卷) 电子书 可复制

    《Java Web开发实战1200例》是针对Java Web开发者的一本详实教程,它以实例为主,全面覆盖了Web开发的各种技术和实践。第二卷更深入地探讨了这一领域,旨在帮助读者从初级到高级逐步提升技能。本书提供的三种电子书...

    Java Web整合开发王者归来

    Java Web开发是将Java语言应用于Web应用程序的领域,它包括了Servlet、JSP(JavaServer Pages)、JavaServer Faces(JSF)等核心技术。本书可能详细讲解了以下几个关键知识点: 1. **Servlet**:Servlet是Java平台...

    Put JSF to work

    ### 使用JSF、Spring与Hibernate构建实际Web应用 在当今高度数字化的世界中,构建高效、稳定且可扩展的Web应用程序已成为企业成功的关键因素之一。JavaServer Faces (JSF)、Spring框架与Hibernate作为Java世界中...

    JAVA WEB典型模块与项目实战大全

    1.1 java web应用概述  1.2 配置开发环境  1.3 基础技术简单简介  1.4 核心框架初步认识  1.5 小结  第2章 myedipse开发工具对各种框架的支持  2.1 使用jsp的两种模式  2.2 struts框架的实现  2.3...

    java+web开发教程

    在“Java Web开发教程——入门与提高篇(JSP+Servlet)”这个教程中,你将系统学习这些知识点,逐步掌握如何使用Java进行Web开发,建立起从零到一的实战能力。无论是对HTTP协议的理解,还是对Java Web组件的运用,都...

    web技术大纲的word版本

    课程目标是使学生理解Web编程的思想,熟悉主要的开发工具,并具备实战能力,以达到专业级的编程水平。大纲特别强调了基于Java的Web编程技术,因为这是目前行业中的主流,其安全性、分层架构和跨平台特性使其成为企业...

    jsf in Action源代码(6-10章).rar

    JSF是Java平台上的一个用于构建Web应用程序的组件模型框架,它极大地简化了用户界面的开发和维护。以下是对这些章节源代码中涉及的知识点的详细解析: 6. 面向组件的编程:这一章主要介绍了JSF的核心——组件模型。...

    学通Java_web

    他的著作包括《精通NetBeans——Java桌面、Web与企业级程序开发详解》和《Java SE 6.0编程指南》,均为技术领域内的畅销书籍。 #### 二、《30天学通Java Web项目案例开发》特点 这本书旨在通过实践项目来提升学习...

    richfaces实用例子

    【标题】:“richfaces实用例子”是一个基于Java的Web开发框架——RichFaces的实际应用示例。这个项目旨在展示如何在实际开发中利用RichFaces库来创建功能丰富的用户界面。 【描述】:描述中提到的工作环境预设已...

    ArcGIS+Server+Java讲座

    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的图书馆管理系统(源码+数据库).zip

    Java Web是指使用Java技术进行Web应用开发的一系列技术和框架,包括Servlet、JSP、JavaServer Faces(JSF)等。其中,Servlet是Java Web的基础,用于处理HTTP请求;JSP则是一种动态网页技术,将业务逻辑和表现层分离...

    Struts2.1权威指南——基于WebWork核心的MVC开发.pdf

    - **李刚**:拥有近10年的Java EE应用开发经验。曾任LITEON公司的J2EE技术主管,负责企业信息平台的架构设计。在广州电信、广东龙泉科技等公司担任过技术培训导师。2007年3月26日被《电脑报》专访。创立了疯狂Java实...

Global site tag (gtag.js) - Google Analytics