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

JSF Web应用开发实战
作者 : 麻地河 赵 恒
丛书名 : 原创精品系列
出版日期 : 2008-09-18
ISBN : 7-111-24080-8
定价 : 65.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 478
开本 : 16开
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

JSF是未来Java Web开发的标准框架, 得到业界大公司的鼎力支持。从Java EE 5开始, JSF已经上升为Java官方规范的强制部分。JSF极大地简化了Java Web的开发,充分体现出Sun“简化Java开发”的宗旨。

  本书从实用的角度介绍JSF Web开发技术,具有以下特色:
  ●立足于JSF技术在实际编程中的运用,包含50多个范例, 帮助读者通过实践掌握JSF的精髓。
  ●通过一个完整的论坛系统的实例文档和代码,带领读者体验JSF应用开发的全过程。
  ●结合最流行的NetBeans 6开发工具讲解。
  ●从组件模型到请求处理生命周期,囊括JSF的全部技术要点。
  ●循序渐进,由浅入深,大大降低学习难度。
  ●读者可从机工新阅读网站(www.cmpreading.com)下载与本书配套的源程序。
  ●作者为本书设立专门的技术支持网站(www.madihe.com),读者可访问网站参与论坛讨论和答疑。

  作者简介:
  李文兵 中国最早一代PC程序员,从事软件开发超过20年,见证了中国软件行业发展的全部历程,熟悉多种编程语言。他曾就职于若干软件企业,担任程序员、高级程序员、系统分析员、项目经理、测试部主管、开发部经理及技术总监等职,参与过多个软件项目的开发,涉及通信、外贸、制造、金融、移动通信和电信等诸多应用领域。在从程序编码、系统设计、需求分析到软件测试的各个软件工程环节上,均具有扎实的理论基础和丰富的实践经验。李文兵从2006年开始尝试IT写作,并以“麻地河”为笔名在IT168上发表过多篇技术和评论文章,以阅历丰富、观点独到、文笔流畅见长,善于用朴素的语言解释深奥的技术,深受读者喜爱。欢迎读者访问本书配套网站www.madihe.com共同探讨JSF技术

图书特色

图书前言

这是一本JavaServer Faces技术的入门类书籍,且偏重于实用。书中穿插的50多个大小范例,是实用性的最好证明。
全书共分12章,除了第1章和最后一章外,其余每章都介绍JSF的一个技术要点,同时辅以若干实例。
作为全书的开头,第1章是对JSF技术的概述。这章除罗列JSF的定义、设计模式、设计目标及几大优势外,还介绍了JSF的开发工具NetBeans,为后续章节打下了基础。由于本书是以实用性为主的,因此,结合工具来讲解JSF会更容易理解。
第2章的核心是一个以JSF技术编写的登录页面。这章描述了登录页面的完整开发过程,还在每一步骤中结合JSF技术对设计和代码进行了的分析,以期让读者在完成这个范例的过程中,对JSF的整体架构产生一定的认识。
第3章是全书篇幅最长的一章,约90页,非常详细地介绍了JSF的基本UI组件,包括其用途、设计方法、各个属性的含义以及在编程时应注意的事项等。大部分的组件,都给出了范例,有些重要的或者难于理解的组件,范例还不止一个。UI组件是JSF的创新,也是JSF的基础,因此浓墨重笔是必须的。
第4章介绍JSF的页面导航技术,包括原理、配置方法以及和业务逻辑的集成等。JSF页面导航的特色在于“集中”二字,既便于设计,也容易维护,尤其在大规模Web应用中,优势更为明显。
第5章讨论托管Bean和统一表达式语言(EL)。了解JSP技术的读者对于EL可能并不陌生,但托管Bean一定是个新概念。这章没有大篇幅介绍托管Bean的原理以及EL的具体格式,而是将重点放在各种范围的托管Bean在实际编程中的用法上。
第6章包括5节,前两节论述Java和JSF事件驱动模式的工作原理,后3节分别介绍了在JSF编程中非常重要的3种事件,即动作事件、值改变事件和阶段事件。对于每种事件,都说明了事件的触发时机、响应方法以及在实际编程中的用途。
第7章介绍JSF转换器,内容大致分为两部分,前几节分别介绍了转换器的编写、注册、托管和引用方法,最后一节全部是范例,每个范例说明转换器的一种编程方法。
第8章介绍JSF验证器,在结构上和第7章类似,先介绍了验证器的基本概念,最后以若干个范例结束。
第9章介绍JSF消息。JSF允许程序员以消息包的方式管理消息,并且消息包同时支持Java类和属性文件两种形式。本章讨论JSF消息的用法,并举例说明了诸如用自定义消息替换标准消息等实用编程技术。
第10章讨论JSF的数据库编程技术,包括在JSF应用中如何通过数据组件直接访问数据库,以及如何利用Java持久化技术JPA将数据库表映射为Java实体类。这两种技术在JSF数据库应用中广泛采用,前者在小规模应用中大显身手,而后者则在大规模应用中找到用武之地。本书最大最完整的一个实例程序,采用的便是JPA技术。
第11章是一个完整的JSF应用开发过程实例,包括从需求分析、设计到编码的全过程,并且给出了详尽的需求文档、设计文档(包括数据库和业务逻辑)、页面设计以及详细设计和编码说明。这是一个具备基本功能的论坛系统,展示了NetBeans下JSF应用开发的实际过程,能够帮助读者突破技术难点,尽快在实际项目中使用JSF。
第12章是对全书50多个范例的总结,列出了所有范例程序及其演示的技术要点,并给出了各范例和章节的对照表。除此以外,这章还详细说明了如何下载和使用范例的源代码,以确保读者能够在自己的开发环境中顺利地打开、查看和运行范例程序。
由于作者水平有限,书中错误和遗漏在所难免,真诚希望得到广大读者的指正。任何意见和建议,请发邮件给madihe@126.com,同时,为了方便与读者交流,本书在www.madihe.com上开辟了专门的论坛,欢迎读者登录论坛参与JSF技术研讨和答疑,分享彼此的程序人生。

麻地河 赵 恒
2008年3月15日

封底文字

JSF是未来Java Web开发的标准框架, 得到业界大公司的鼎力支持。从Java EE 5开始, JSF已经上升为Java官方规范的强制部分。JSF极大地简化了Java Web的开发,充分体现出Sun“简化Java开发”的宗旨。

  本书从实用的角度介绍JSF Web开发技术,具有以下特色:
  ●立足于JSF技术在实际编程中的运用,包含50多个范例, 帮助读者通过实践掌握JSF的精髓。
  ●通过一个完整的论坛系统的实例文档和代码,带领读者体验JSF应用开发的全过程。
  ●结合最流行的NetBeans 6开发工具讲解。
  ●从组件模型到请求处理生命周期,囊括JSF的全部技术要点。
  ●循序渐进,由浅入深,大大降低学习难度。
  ●读者可从机工新阅读网站(www.cmpreading.com)下载与本书配套的源程序。
  ●作者为本书设立专门的技术支持网站(www.madihe.com),读者可访问网站参与论坛讨论和答疑。

  作者简介:
  李文兵 中国最早一代PC程序员,从事软件开发超过20年,见证了中国软件行业发展的全部历程,熟悉多种编程语言。他曾就职于若干软件企业,担任程序员、高级程序员、系统分析员、项目经理、测试部主管、开发部经理及技术总监等职,参与过多个软件项目的开发,涉及通信、外贸、制造、金融、移动通信和电信等诸多应用领域。在从程序编码、系统设计、需求分析到软件测试的各个软件工程环节上,均具有扎实的理论基础和丰富的实践经验。李文兵从2006年开始尝试IT写作,并以“麻地河”为笔名在IT168上发表过多篇技术和评论文章,以阅历丰富、观点独到、文笔流畅见长,善于用朴素的语言解释深奥的技术,深受读者喜爱。欢迎读者访问本书配套网站www.madihe.com共同探讨JSF技术

图书序言

无知者无畏,此言不虚。4年前我首次接触JSF时,正是一名无知者,因为我所有的Java经验,只是一个“Hello,world”程序,以及3个月的JSP编程。
关于“Hello,world”的记忆已经很遥远了,遥远到连年份都已模糊。只记得那是20世纪90年代,我是一名快乐的程序员,做着自己喜欢做的事,拿着令人羡慕的不菲薪水,生活紧张有序,人生充满期待。
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
看完这几行英文,我欣喜异常,这不正是我所需要的吗?组件模式、事件驱动以及数据绑定,JSP的弱项在JSF中全部得到了加强!我对JSF非常满意,于是马上决定,我的下一个技术目标就是JSF。
正应了那句俗语:“傻人有傻福。”采用JSF技术后,Web编程如有神助,只用了一个月的时间,我和一名刚毕业的编程新手写出了一个规模不小的Web程序:126张数据库表,346个JSP页面,458KB的Java源程序。即使是桌面应用,如此规模的程序在一个月内完成,老板也该偷着笑了。其实,效率的提高,完全是JSF的功劳。正如Sun在JSF规范中所宣称的那样,JSF极大地简化了Java的 Web编程。
自从这次成功的经历后,我所有的Java Web项目都采用JSF。随着对JSF认识的逐步加深,我开始有一种向别人推荐JSF的冲动。当我在论坛上看到IT168编辑赵恒的约稿贴子时,由于一时兴起就投了一篇稿,不想竟获得发表。意外之余,信心大受鼓舞,随后又陆陆续续写了一些吹捧JSF的稿子。
有一天我和赵恒在QQ里聊起了JSF的请求处理生命周期。在我初学JSF时,生命周期是我最大的障碍。不管我如何咬文嚼字地推敲JSF规范中关于生命周期的描述,我都无法弄明白到底专家们在说什么。这让我十分地惴惴不安,时时担心自己误入歧途。不论是Sun的Tutorial,还是JSF的官方规范都把生命周期放在“头版头条”的位置,一开篇就大肆推销生命周期概念,生命周期真的那么重要吗?
这绝对是一种错误理念!生命周期是JSF的核心,但不是程序员的必修课,初涉JSF的程序员,根本没有必要将精力浪费在生命周期晦涩概念的纠缠中,不懂生命周期,照样可以用JSF来编程。花很少的时间看看各个UI组件的功能和属性,然后弄明白各类事件的含义以及应该如何响应这些事件,了解有关JSF可配置的页面导航机制,再搞清楚Managed Bean是什么,马上就可以动手编写你的第一个JSF程序了!
生命周期当然重要,不理解生命周期是难以在JSF中深入下去的。但是,在QQ上聊天时,我随口说道,“如果有机会让我来写JSF教程的话,我会完全不管生命周期,或者最多把它放在最后一章,等大家都有了JSF的实践经验和感性认识后,再来深入剖析JSF的生命周期,才能水到渠成,一点就通”。
没料到,在QQ上的信口雌黄,却促成了本书的编写,祸从口出的真理再次得到验证,从此我没有了爬山的时间和心情。好在赵恒不忍心我孤军奋战,答应和我一起写,让我多少有了一些找到组织的感觉。他有一项分工,是给书稿提意见。别人或许不知道,但我很清楚,给书稿提意见是需要一些勇气的。此前因为我在IT168上数次投稿,我们已经非常熟悉了。我的稿子都是由他编辑的,因此他几番领教过我的坏脾气。我的脾气平时像唐僧,不过一旦编辑要我改稿子,就很容易变成唐僧手下的那只泼猴。我相信他在同意做本书的第二作者时,一定是豁出去了。
谢天谢地,到目前为止,赵恒的生命安全还没有受到来自我的威胁,但他远比我辛苦,这我是知道的。一方面要有理有节地与我讨论书本内容、行文风格、读者对象以及编写计划等,另一方面还要和出版社沟通交流,谈合同论斤两,殊为不易。赵恒,你是好样的!
本书开笔是在去年3月份,说实话,如果没有机械工业出版社陈冀康编辑的帮助,我差不多要半途而废了。在此一并表示感谢。

麻地河
2008年3月14日

作者简介

麻地河 赵 恒:暂无简介

图书目录

序言
前言
第1章  JSF简介 1
1.1  JSF概述 1
1.1.1  JSF的定义 1
1.1.2  JSF与MVC设计模式 2
1.1.3  JSF设计目标 3
1.2  JSF的优势 4
1.2.1  可视化开发 5
1.2.2  可重用UI组件 7
1.2.3  集中式页面导航 8
1.2.4  事件驱动 8
1.2.5  表示层和业务层的分离 9
1.2.6  用户界面到业务逻辑的直接映射 9
1.2.7  清晰的角色分工 10
1.2.8  Web开发的官方标准之一 11
1.3  JSF的开发工具NetBeans 11
1.3.1  NetBeans简介 12
1.3.2  NetBeans版本 13
1.3.3  安装NetBeans 14
1.3.4  熟悉NetBeans的界面 14
1.3.5  配置应用服务器 15
1.3.6  配置数据库服务器 16
1.3.7  JSF,就是这么简单 17
第2章  快速入门 18
2.1  一个简单的JSF例子:WebLogin程序 18
2.2  WebLogin的概要设计 19
2.2.1  业务功能设计 19
2.2.2  网页设计 19
2.2.3  导航设计 21
2.2.4  应用集成设计 22
2.3  WebLogin的详细设计 22
2.3.1  创建JSF项目 22
2.3.2  编写用户身份验证的业务逻辑 24
2.3.3  编写网页 25
2.3.4  配置页面导航 32
2.3.5  应用集成 34
2.4  运行WebLogin 42
第3章  UI组件 43
3.1  UI组件概述 43
3.1.1  组件的功能 43
3.1.2  组件和组件类 44
3.1.3  组件和页面Bean的关系 45
3.1.4  组件的事件及其响应 46
3.1.5  组件外观和CSS 47
3.2  组件的一般属性 49
3.2.1  id属性 49
3.2.2  style属性 49
3.2.3  styleClass属性 50
3.2.4  required属性 51
3.2.5  toolTip属性 52
3.2.6  disabled属性 53
3.2.7  visible属性 55
3.2.8  rendered属性 57
3.2.9  tabIndex属性 58
3.3  基本组件 59
3.3.1  标签组件 59
3.3.2  静态文本组件 62
3.3.3  文本字段组件 64
3.3.4  文本区域组件 68
3.3.5  按钮组件 71
3.3.6  超级链接组件 76
3.3.7  图像超级链接组件 79
3.3.8  下拉列表组件 79
3.3.9  列表框组件 85
3.3.10  复选框组件 88
3.3.11  复选框组组件 90
3.3.12  单选按钮组件 93
3.3.13  单选按钮组组件 94
3.3.14  图像组件 94
3.3.15  表组件 95
3.3.16  表行组组件 100
3.3.17  表列组件 101
3.3.18  口令字段组件 104
3.3.19  隐藏字段组件 105
3.3.20  日历组件 108
3.3.21  文件上传组件 109
3.3.22  树组件 112
3.3.23  树节点组件 113
3.3.24  锚点组件 117
3.3.25  消息组件 118
3.3.26  消息组组件 119
3.4  虚拟表单 120
3.4.1  虚拟表单的定义 121
3.4.2  虚拟表单的用途 122
第4章  页面导航 127
4.1  页面导航概述 127
4.1.1  Web应用的页面与导航 127
4.1.2  集中式的JSF页面导航 128
4.1.3  页面导航的可视化设计 130
4.1.4  导航规则 131
4.2  在JSF页面中导航 132
4.2.1  导航的触发 132
4.2.2  触发导航的组件类型 133
4.2.3  静态导航和动态导航 134
4.2.4  用动作类组件实现静态导航 134
4.2.5  在动作类组件的静态导航中加入业务逻辑 136
4.2.6  用输入类组件实现静态导航 136
4.2.7  用动作类组件实现动态导航 137
4.2.8  用导航实现页面刷新重载 138
4.3  高级导航应用 141
4.3.1  从任意页面导航到指定页面 142
4.3.2  在导航页面之间传递参数 144
第5章  托管Bean和统一表达式语言EL 150
5.1  托管Bean和EL概述 150
5.1.1  托管的含义 150
5.1.2  用EL访问托管Bean 152
5.1.3  托管Bean和EL的用途 153
5.2  托管Bean的范围 154
5.2.1  请求范围 157
5.2.2  会话范围 158
5.2.3  应用范围 159
5.2.4  使用正确的范围 160
5.3  绑定 161
5.3.1  值绑定 162
5.3.2  动作类组件的方法绑定 164
5.3.3  输入类组件的方法绑定 166
5.3.4  实例绑定 169
5.4  使用页面Bean 171
5.4.1  页面和页面Bean 171
5.4.2  页面Bean的生命周期方法 172
5.4.3  响应动作事件 174
5.4.4  响应值改变事件 175
5.4.5  动态生成UI组件 176
5.5  使用请求Bean 178
5.5.1  默认的和自定义的请求Bean 178
5.5.2  请求Bean的生命周期方法 179
5.5.3  在相邻页面之间传递参数 180
5.6  使用会话Bean 184
5.6.1  会话和会话Bean 184
5.6.2  默认的和自定义的会话Bean 186
5.6.3  会话Bean的生命周期方法 187
5.6.4  管理会话 189
5.6.5  跨页面共享信息 194
5.7  使用应用Bean 196
5.7.1  Web应用和应用Bean 196
5.7.2  默认的和自定义的应用Bean 197
5.7.3  应用Bean的生命周期方法 198
5.7.4  跨会话共享信息 199
第6章  事件驱动 202
6.1  Java事件驱动概述 202
6.1.1  事件驱动模式概述 202
6.1.2  事件类 203
6.1.3  监听器接口 204
6.1.4  监听器 205
6.1.5  事件源 205
6.1.6  事件驱动的实例 211
6.2  JSF的事件驱动模式 212
6.2.1  JSF事件类 213
6.2.2  JSF监听器接口 214
6.2.3  JSF监听器 214
6.2.4  JSF监听器的注册 215
6.2.5  JSF的回调方法 216
6.2.6  JSF的事件队列 218
6.3  动作事件 220
6.3.1  动作事件类 221
6.3.2  动作监听器接口 221
6.3.3  响应动作事件 222
6.3.4  动作事件源 223
6.3.5  动作事件示例 224
6.4  值改变事件 228
6.4.1  值改变事件类 229
6.4.2  值改变监听器接口 230
6.4.3  响应值改变事件 230
6.4.4  值改变事件源 232
6.4.5  值改变事件示例 233
6.5  阶段事件 234
6.5.1  阶段事件类 235
6.5.2  阶段监听器接口 236
6.5.3  响应阶段事件 236
6.5.4  阶段事件源 237
6.5.5  阶段事件示例 238
第7章  转换器 242
7.1  转换器概述 242
7.1.1  问题的提出 242
7.1.2  转换器的用途 243
7.1.3  转换器的原理 245
7.2  编写转换器 247
7.2.1  转换器接口 247
7.2.2  标准转换器 249
7.2.3  自定义转换器 252
7.3  注册转换器 253
7.3.1  类型注册 254
7.3.2  名称注册 255
7.3.3  默认注册 256
7.4  托管转换器 257
7.5  引用转换器 258
7.5.1  自动引用 258
7.5.2  通过converter属性引用 259
7.5.3  通过f:converter标签引用 261
7.5.4  通过专用标签引用 262
7.5.5  不引用转换器 263
7.6  转换器示例 263
7.6.1  使用标准转换器 263
7.6.2  DateTime标准转换器 264
7.6.3  Number标准转换器 269
7.6.4  替换标准转换器 274
7.6.5  自定义类型的转换 278
第8章  验证器 284
8.1  验证器概述 284
8.1.1  验证器的用途 284
8.1.2  验证器的原理 285
8.2  编写验证器和验证方法 286
8.2.1  验证器接口 287
8.2.2  标准验证器 287
8.2.3  自定义验证器 289
8.2.4  验证方法 290
8.3  注册验证器 291
8.3.1  名称注册 291
8.3.2  默认注册 292
8.4  托管验证器 292
8.5  引用验证器 293
8.5.1  通过validatorExpression属性引用 294
8.5.2  通过f:validator标签引用 296
8.5.3  通过专用标签引用 297
8.6  验证器示例 298
8.6.1  使用标准验证器 298
8.6.2  用代码控制验证器 299
8.6.3  使用自定义验证器 302
第9章  消息 305
9.1  JSF的消息机制 305
9.2  消息类 306
9.2.1  消息类及其属性和方法 307
9.2.2  消息类的实例化 307
9.3  消息包 308
9.3.1  Java类形式的消息包 308
9.3.2  属性文件形式的消息包 310
9.4  消息的产生 311
9.4.1  注册消息包 311
9.4.2  引用消息 312
9.5  消息的排队 312
9.5.1  将消息加入队列 313
9.5.2  指定关联UI组件 313
9.5.3  页面Bean的消息实用方法 315
9.6  消息的显示 315
9.7  带参数消息 316
9.8  标准消息及其替换 316
9.8.1  标准消息 316
9.8.2  替换标准消息 318
第10章  数据库访问及持久化 321
10.1  数据库访问模型 321
10.2  缓存行集 325
10.2.1  实例化 325
10.2.2  初始化 326
10.2.3  数据读取 326
10.2.4  光标操作 327
10.2.5  增删改 328
10.2.6  保存 329
10.2.7  带参数的缓存行集 330
10.3  缓存行集数据提供器 331
10.3.1  实例化 331
10.3.2  配置 332
10.3.3  数据读取 334
10.3.4  用EL表达式访问缓存行集数据
提供器 334
10.4  数据库访问实例 338
10.4.1  MySQL的下载、安装和配置 338
10.4.2  建表 340
10.4.3  建立外键关系 342
10.4.4  添加模拟数据 343
10.4.5  用列表框组件显示表字段 344
10.4.6  用表组件操作表数据 347
10.4.7  主从式数据访问 352
10.5  持久化 356
10.5.1  持久化技术概述 356
10.5.2  持久化单元 357
10.5.3  持久化标注 358
10.5.4  实体管理 359
10.5.5  事务管理 360
10.5.6  主键生成策略 361
10.5.7  查询 362
10.5.8  带参数查询 363
10.5.9  命名查询 364
10.5.10  JSF与持久化 365
10.5.11  NetBeans中的持久化 365
10.5.12  持久化示例 366
第11章  JSF实例:论坛 376
11.1  需求分析 376
11.1.1  术语解释 376
11.1.2  用户管理 380
11.1.3  帖子管理 381
11.2  数据库设计 382
11.2.1  注册用户表 383
11.2.2  帖子表 383
11.2.3  主题表 383
11.2.4  回帖表 383
11.2.5  置顶表 384
11.2.6  表间关系 384
11.3  功能设计 384
11.3.1  用户注册 384
11.3.2  用户封闭 385
11.3.3  用户解封 385
11.3.4  用户登录 385
11.3.5  修改密码 386
11.3.6  用户退出 386
11.3.7  强制下线 386
11.3.8  密码重设 386
11.3.9  设管 387
11.3.10  撤管 387
11.3.11  用户删除 387
11.3.12  查询用户列表 388
11.3.13  发新帖 388
11.3.14  回复 388
11.3.15  修改帖子 388
11.3.16  删除帖子 389
11.3.17  主题置顶 389
11.3.18  撤销置顶 389
11.3.19  主题列表 389
11.3.20  阅读主题 390
11.3.21  搜索帖子 390
11.3.22  在线用户数统计 390
11.3.23  帖子数统计 390
11.3.24  今日新帖数统计 390
11.4  页面设计 391
11.4.1  首页 391
11.4.2  用户管理页面 391
11.4.3  用户删除确认页面 391
11.4.4  密码重设页面 391
11.4.5  帖子删除确认页面 391
11.4.6  我的论坛页面 391
11.4.7  登录页面 391
11.4.8  登录成功页面 391
11.4.9  注册页面 392
11.4.10  注册成功页面 392
11.4.11  修改密码页面 392
11.4.12  修改密码成功页面 392
11.4.13  用户退出成功页面 392
11.4.14  发新帖页面 392
11.4.15  发新帖成功页面 392
11.4.16  回复页面 392
11.4.17  回复成功页面 392
11.4.18  阅读主题页面 392
11.4.19  帖子修改页面 393
11.5  导航设计 393
11.5.1  页面导航表 393
11.5.2  页面导航配置文件 393
11.5.3  异常处理 395
11.5.4  业务集成 396
11.6  详细设计 397
11.6.1  数据库表 397
11.6.2  业务逻辑Bean 400
11.6.3  持久化 404
11.6.4  会话管理 408
11.6.5  页面编码 411
11.6.6  表和数据提供器 457
11.6.7  异常处理 465
11.6.8  主题表排序 467
11.6.9  参数传递 468
第12章  源代码的下载和使用 470
12.1  下载方式 470
12.2  源代码压缩文件包内容 470
12.2.1  源程序目录 470
12.2.2  SQL文件 472
12.3  准备开发环境 473
12.3.1  JDK 473
12.3.2  NetBeans 473
12.3.3  GlashFish 473
12.4  安装和配置MySQL数据库 474
12.4.1  下载和安装 474
12.4.2  创建数据库、表格、视图并添加
数据 474
12.4.3  在NetBeans中建立数据库连接 475
12.5  打开并运行范例程序 476
12.6  常见问题 477

教学资源推荐
作者: [美]梁勇(Y. Daniel Liang)阿姆斯特朗亚特兰大州立大学 著
作者: [美]H. H. 塔恩(H.H.Tan),T. B. 多拉齐奥(T.B.D'Orazio)[香港]柯兆恒(S. H. Or),玛丽安 M. Y. 周(Marian M. Y. Choy) 著
作者: [美]梁勇(Y. Daniel Liang) 著
作者: Bjarne Stroustrup
参考读物推荐