Java语言程序设计 进阶篇(原书第5版)
作者 : Y. Daniel Liang
译者 : 王镁 新夫 李娜 等
丛书名 : 计算机科学丛书
出版日期 : 2006-08-20
ISBN : 7-111-19193-5
定价 : 59.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 465
开本 : 16开
原书名 : Introduction to Java Programming,Comprehensive Version,Fifth Edition
原出版社: Prentice Hall
属性分类: 教材
包含CD :
绝版 :
图书简介

本书是Java语言的经典教材,畅销多年不衰。本书以J2SE 5.0版本为基础,采用“先讲基础”的教学方式,循序渐进地介绍了程序设计基础、面向对象的程序设计、图形用户界面设计、异常处理和输入/输出等。另外,本书还全面且深入地覆盖了一些高级主题,包括GUI应用程序、applet、数据结构、多线程、JavaBeans、高级GUI、数据库、JSP、分布式计算等。
  本书中文版由《Java语言程序设计 基础篇》与《Java语言程序设计 进阶篇》组成。基础篇对应原书的第1~16章,进阶篇对应原书的第17~29章和附录。

本书的主要特点
  ●基础篇介绍基础内容,进阶篇介绍高级内容,教师能够按需选择理想的教材。
  ●包括面向对象程序设计的深入论述,包含GUI程序设计的基础和扩展实例。
  ●提供大量实例,实例中都包括问题求解的详细步骤,可激发学习兴趣。
  ●覆盖Java程序设计的众多高级主题。涉及Level I Java认证考试所需的全部主题。
  ●提供大量难易程度不同的习题,在作者的网站  http://www.cs.armstrong.edu/liang/intro5e.html)中还提供了1000多道自测题。

图书特色

图书前言

在过去的七年中,《Introduction to Java Programming》已经出版到第5版。在清晰性、内容组织、表述方式、例子设计和习题选取等方面,每个新版都比前一版本有实质性的改进。这要感谢老师和同学们的批评与建议。第5版有一个巨大的飞跃。我诚请你关注、评判本书,我会不断地改进它。请你一如既往地继续提出批评和建议。
  版本
  《Introduction to Java Programming》有完全版与核心版两个版本。可以根据学生的情况选择。完全版有29章,核心版有16章。本书是完全版,下面讲解的情况符合两个版本。
  讲授方式
  讲授Java有三种比较普遍的做法。第一种讲法是先讲图形用户界面(GUI),将Java applet和图形程序设计与面向对象程序设计的概念混合讲授。第二种讲法是先讲对象,一开始就介绍面向对象程序设计(OOP)。第三种讲法是先讲基础,是一种循序渐进的讲授方式,首先对程序设计的概念、控制语句、方法和数组打下坚实的基础,然后介绍面向对象程序设计,再讲授图形用户界面、applet,最后讲授异常处理、简单I/O和其他高级课题。
  先讲图形用户界面的做法从GUI和applet开始,似乎比较有吸引力,但是这需要具备牢固的面向对象程序设计方面的知识,并要求对Java事件处理模式有很好的理解。所以,学生可能不太容易完全接受。先讲对象的做法,其出发点是由于Java是一种面向对象的程序设计语言,应该首先介绍对象。但是,这种想法忽略了编程基本技术的重要性,这种基本技术是使用任何程序设计语言编写程序都需要的。此外,在学生完全理解类和对象并使用它们开发应用程序之前,这种做法势必混淆静态变量与实例变量、静态方法与实例方法的概念。在学习Java的开始阶段,由于必须同时掌握面向对象程序设计和程序设计的基本法则,学生会感到压力比较大。这是一年级学生不能成功学习面向对象程序设计的普遍原因。
  从本人经验以及很多同事的成功经验来看,对很多一年级学生来说,学习逻辑基础和基本程序设计技巧是一项艰苦的工作。在面向过程程序设计中没有学好编码的学生很难学好面向对象程序设计。应该充分地介绍基本数据类型、控制语句、方法和数组,为学习面向对象程序设计作好准备。因此,本书采用先讲基础的做法,首先按部就班地学习所有必备的和重要的基本概念,进而学习面向对象程序设计,然后用面向对象的思想建立具有异常处理、简单I/O和其他高级功能相关的GUI应用程序和applet。这种方法的好处是,首先讲解了面向过程的方法,然后演示面向对象方法的优越性,学生可以从中学到何时以及如何高效应用面向对象方法。
  本书不仅介绍如何编写程序,而且讲授如何利用程序解决实际问题。在软件项目的设计和实现中应用抽象的概念,是软件开发的关键。因此,本书的最高目标是教会学生在解决问题时使用多种层次的抽象,既能从宏观又能从微观看待问题。贯穿本书的例子和习题都以开发可复用组件并使用它们创建实用程序为中心。
  学习策略
  程序设计课程与其他课程有很大的不同。在程序设计课程中,学生要从例子中学习、从实践中学习、从错误中学习,需要花费大量的时间编写程序、调试程序和修改错误。
  对于刚接触程序的新手来说,学习Java与学习其他高级语言一样。学习程序设计的基本目的就是培养从实际问题到程序算法的分析技能,并学会利用选择语句、循环语句和方法把它们翻译成程序。
  一旦掌握了使用循环、方法和数组编写程序的基本技能,就可以开始学习面向对象程序设计,学习如何使用类的封装和类的继承开发面向对象的软件。
  如果理解了面向对象程序设计的概念,学习Java就变成了纯粹学习Java API一件事情。Java API为程序员搭建了使用Java开发应用程序的构架。创建应用程序时,必须使用API中的这些类和接口,遵循它们的习惯和规则。学习Java API的最好办法是模仿例子并进行练习。下图集中总结了本书涉及的API。
  教学特点
  本书的写作风格是通过例子教学和通过实践学习。通过例子解释基本功能,然后学生可以通过实践来学习。本书采用下列要素组织素材:
  * 学习目标:列出了学生学习本章应该掌握的内容,有助于他们学完各章后判断自己是否达到了目标。
  * 引言:由一个简洁的概要开场,讨论在本章中将会学到什么。
  * 例子:通过有代表性的例子讲解程序设计的概念,这些例子经过精心挑选,并用易于模仿学习的方式讲述。每个例子都有问题描述、解答步骤、完整的源代码、运行样例和例子说明。
  * 本章小结:复习学生应该理解和掌握的重要主题,有助于巩固该章所学的主要概念。
  * 复习题:是按节组织的,帮助学生回顾自己的学习过程,评估自己的学习状况。
  * 编程练习:是按节组织的,给学生提供独立应用技能的机会。练习题难度分为容易(没有星号)、一般(*)、较难(**)、挑战(***)四个级别。学习程序设计的窍门就是练习,练习,再练习,所以本书提供了大量的编程练习题。
  * 交互式自测试:可以在网络上测试对本书知识的掌握程度。本书网站有交互式自测试栏目(Interactive Self-Test),提供了900多道多项选择题,按章节内容组织。
  * 注、提示和警告:它们贯穿全书,对程序开发的重要方面提供有价值的建议和深刻的 认识。
  注 提供主题的附加信息,巩固重要概念。
  提示 讲解优秀的程序设计模式和编程实践。
  警告 帮助学生避开程序设计的误区,少犯错误。
  各章相对独立
  本书的各章内容相对独立,使得学生可以较早地涉及GUI、I/O或集合。第14章后的很多章都可以在学完第14章后立即开始学习。下图显示了各章之间的依赖关系。
  注 一些可选的例子和练习可能依赖前面的章节。这种情况下可以忽略这些例子和练习。例如,第25章有一个例子涉及第24章的JTable。如果没学过JTable,可以跳过这类例子和练习。
  本版的新内容
  本书改进了第4版,主要有以下改变:
  * 在改进清晰性、内容、表述、例子和练习等方面,本书对每个细节都做了全面修订。
  * 本书提供了许多新的图解,并使用小例子演示概念和技巧。在实例学习中展示较长的例子,并且进行全面的讨论和逐行细致的解释。
  * 第1篇“程序设计基础”主要集中讨论问题求解和基本程序设计方法,还附加了许多新的图解和实践性例子。本篇使用JOptionPane输入对话框接收输入。但是,还介绍了使用myInput类和JDK 1.5的Scanner类进行输入,以供选择。
  * 第2篇“面向对象程序设计”扩展成5章,详尽地介绍了OOP以及如何用它进行程序设计。新的组织方式改进了面向对象程序设计的讲述,使得学生可以较早地学习GUI程序设计。
  * 第3篇“图形用户界面程序设计”扩展成4章,介绍GUI程序设计、事件驱动程序设计、创建用户图形界面以及applet。高级GUI功能放到第7篇“高级图形用户界面程序设计”中介绍。
  * 第16章“简单输入输出”进行了全面改写。首先介绍File类,然后介绍文本I/O、二进制I/O、对象I/O和随机读写文件。采用小例子演示概念和技巧。在该章还提供了使用各种I/O类的三个实例学习。
  * 本书完全版覆盖了Java集合构架、线程、JavaBean、高级GUI组件、JDBC、Servlet、JSP、网络和RMI等。
  * 使用实际中的例子,如计算贷款支付额、计算税款和打印工资表等,取代了纯数学的例子,如计算方差和矩阵的乘法等。
  * 编程练习几乎增加了一倍,包括各种简单或复杂的问题。难度分为容易(没有星号)、一般(*)、较难(**)和挑战(***)四个级别。
  * 本书更新到JDK 1.5。
  JDK 1.5新功能的处理
  Java中已经有许多新功能是不能在入门式教程中讲述的。本版的目的不是覆盖JDK 1.5的所有新功能。然而,JDK 1.5包含一些适合初学者的功能。具体是
  * 格式化输出(System.out.printf)包含在第2章中。
  * 增强for循环包含在第5章和第18章中。
  * 类java.util.Scanner包含在第2章和补充材料T中,用于控制台输入。第7章补充了StringTokenizer类。
  * 基本数据类型值的包装类包含在第9章中。
  * 静态常量的导入包含在第11章中。
  * 一般类型包含在第18章和补充材料Q中。
  为了在基于JDK 1.4的教学中使用本书,使教师能够自由选择JDK 1.5的功能,本书中关于JDK 1.5的部分都标有JDK 1.5功能,具体使用时可以跳过。
  注 Sun MicroSystems公司最近将JDK 1.5改名为JDK 5.0。由于大多数程序员熟悉JDK 1.5,Sun公司将名称JDK 1.5与JDK 5.0混淆使用。所以本书也是如此。
  Java开发工具
  可以使用文本编辑器创建Java程序,从命令窗口编译、运行程序,文本编辑器有Windows的记事本(Notepad)或写字板(Wordpad)等。也可以使用Java开发工具,如TextPad、JBuilder、NetBeans和Eclipse等。这些工具支持用来快速开发Java应用程序的集成开发环境(integrated development environment,IDE)。编辑、编译、链接和运行程序都集成在一个图形用户界面中。有效地使用这些工具可以极大地提高编写程序的速度。TextPad是一个纯粹的集成开发环境工具,JBuilder、NetBeans和Eclipse更灵活。熟悉工具可能会花费一点时间,但是这些投入会得到长期的回报。关于TextPad、JBuilder、NetBeans和Eclipse的使用指南参见本书网站中的补充材料。
  本书网站
  本书网站http://www.cs.armstrong.edu/Liang/intro5e.html,包含下列资源:
  * 交互式自测试(Interactive Self-Test)
  * 补充材料(Supplements)
  * 复习题答案(Answers to review questions)
  * 双号编程练习题解答(Solutions to even-numbered programming exercises)
  * 本书例子的源代码(Source code for the example in the book)
  * 下载JDK 1.5、JBuilder、NetBeans、Eclipse、TextPad、JCreator LE、JEdit、JGrasp、BlueJ、WinZip、MySQL和Tomcat。
  教师资源网站
  教师资源网站(Instructor Resource Website)可以http://www.cs.armstrong.edu/ Liang/intro5e/intro5e instructor.html访问,包含下列资源:
  * Microsoft PowerPoint幻灯片,带有交互式按钮,可以浏览全色画面、高亮度语句的源代码,并且无需离开幻灯片就能运行程序。
  * 测验题。一般情况下,每个测验包含四部分:
  1. 多项选择题或简答题(这些题大多数与本书网站上的自测题不同)
  2. 程序改错
  3. 跟踪程序
  4. 编写程序
  * 所有编程练习的解答。学生可以从本书网站上访问偶数题号的编程练习题的解答。
  * 用Java开发的试卷生成器。 要注意,教师资源网站中的材料是只为教这门课的教师提供的,需要这些材料的教师,请填写书后的教师服务登记表并联络Pearson公司北京代表处或机械工业出版社华章分社,联系方式见书后的教师服务登记表。
  补充材料
  本书的正文讲解核心主题。补充材料是正文的一个延伸,介绍读者感兴趣的一些问题。从本书网站上可以访问下列补充材料:
  A. 安装和配置JDK1.5
  B. 从命令窗口编译和运行Java程序
  C. 从TextPad编译和运行Java程序
  D. Java编码风格指导
  E. HTML指南
  F. 术语表
  G. 第25、26、27和29章创建和初始化表使用的SQL语句
  H. JBuilder指南
  I. NetBeans指南
  J. Eclipse指南
  K. MySQL指南
  L. Oracle指南
  M. Microsoft Access指南
  N. Tomcat指南
  O. 在Windows中为Java应用程序创建快捷方式
  P. 第10章的补充实例学习:设计GenericMatrix类
  Q. 创建一般类型(JDK 1.5)
  R. 枚举类型(JDK 1.5)
  S. 信号器(JDK 1.5)
  T. 使用Scanner类从控制台获取输入(JDK 1.5)
  致谢
  我要感谢Ray Greenlaw、Chuck Shipley和Armstrong Atlantic州立大学的同事们,他们使我能够讲授我所写的内容,并支持我将所教的写出来。教学是继续改进本书的灵感之源。感谢提出批评、建议、鼓励和纠错报告的教师和学生。他们的热情支持促成我出版了Java系列教材。
  本书能够得到如此大的改进,这要感谢Tarrant郡学院的James Chegwidden,Armstrong Atlantic州立大学的Dan Lipsa,Georgia南方大学的Vladan Jovanovic,Alaska-Anchorage大学的Kenrick Mock,Wright州立大学的Ronald F. Taylor和Pace大学的Lixin Tao,感谢他们提供的杰出评论。在本书完成之前,及时收到了Arizona州立大学的Mutsumi Nakamura教授和Lian Yu教授提供的勘误表和建议,对此不胜感激。
  能够与Prentice-Hall出版社杰出的计算机科学小组一起工作,我感到非常愉快和荣幸。我要感谢Alan Apt、Toni Holm、Patrick Lindner、Sarah Parker、Camille Trentacoste、John Keegan、Xiaohong Zhu、Pamela Hersperger、Barrie Reinhold、Toni Callum、Barbara Taylor-Laino、Meredith Maresca和他们的同事,感谢他们组织、管理和积极筹划本项目,同时感谢Robert Milch的编辑工作。
  在本书出版期间,我正在亚洲。感谢台湾、马来西亚和新加坡的Pearson教育出版社热忱重要的帮助。
  一如既往,感谢我的妻子Samantha奉献的爱心、支持与鼓励。 
  Y. Daniel Liang
  liang@armstrong.edu
  www.cs.armstrong.edu/liang/intro5e.html

作者简介

Y. Daniel Liang:Y. Daniel Liang: 普度大学终身教授,阿姆斯特朗亚特兰大州立大学计算机科学系教授。他所编写的Java教程在美国大学Java课程中采用率最高,同时他还兼任Prentice Hall Java系列丛书编辑。

译者简介

王镁 新夫 李娜 等:暂无简介

译者序

本书覆盖的内容非常全面,从计算机基础知识一直讲到Java的GUI、输入输出、异常处理、多线程、集合构架、数据库程序设计和Web程序设计。但并未因内容多而显得庞杂,相反正因本书的组织极具匠心,脉络梳理得非常清晰,可读性很强,非常便于查阅。因此本书既适合作为初学者的入门读物,也适合教师和专业人员参考。
  译者认为,本书的最大特点是遵循人类的认知规律,循序渐进,容易阅读。在清晰讲述理论的基础上,通过大量贴切、翔实的例子和逐行分析,讲解语言要素的功用,辨疑释惑,充分展示程序设计技术。
  本书非常重视程序设计基础知识的讲授和基本技能的培养。第1篇介绍计算机基础知识,仔细讲解了Java的基本数据类型和分支、循环语句,这是开始程序设计的必备基础。第2篇由浅入深、详尽地讲述面向对象程序设计,让人感受到面向对象技术的朴素自然。这为读者构筑清晰的概念体系、顺利步入面向对象程序设计殿堂铺平了道路。
  内容全面而又具体,是本书的又一特点。第3篇之后分专题讲授,几乎覆盖了Java语言的各个方面,甚至包括数据结构、servlet、数据库、JSP和RMI。每一部分都没有流于形式、堆砌名词,而是在扎实地阐述概念的基础上,提供了大量范例来讲解程序设计的原理与具体应用范围。每个范例都提供了问题描述、解答步骤、完整源代码和例子说明。
  本书的另一个特点是可读性极强。贯穿全书的“提示”、“警告”、“注”和详细的图示,对帮助读者开拓视野、加深认识、获取开发经验具有重要价值。每章末尾的“主要术语”、“主要的类和方法”、“本章小结”非常便于读者复习和查阅。每章开头的“学习目标”和末尾配备的大量习题与编程练习,以及本书交互网站上的自测问题,有助于读者检验自己的掌握程度,查漏补遗。交互网站上还提供大量极有价值的其他参考资料。
  本人译过原书的第3版,感觉第5版有一个很大飞跃,堪称又上一层楼。考虑到篇幅及本书各篇所述专题侧重点不一,中文版分为《Java语言程序设计  基础篇》和《Java语言程序设计  进阶篇》。对程序设计和Java还不甚了解的读者可以学习基础篇,有一定基础并对Java程序设计的高级主题感兴趣的读者可以进一步学习进阶篇。
  新夫老师和李娜老师参与了大量的翻译工作,并且李娜老师还做了许多文字事务。张耀、董博、王志爱、鲁瑞星、邬婷婷、温俊仙、吴占春、周俊、郑旭东、亢宏毅、张智敏、李凤飞等对本书初译做了大量工作,在此表示诚挚的感谢。在译文中一定有许多不妥之处,诚望同仁能予指正。 
  王  镁
  2006年8月

图书目录

第5篇  数据结构与集合构架
第17章  面向对象数据结构 2
17.1  引言 2
17.2  线性表 2
17.2.1  数组线性表 5
17.2.2  链表(可选) 9
17.3  栈和队列 15
17.4  二叉树(可选) 18
17.4.1  二叉树的表示 19
17.4.2  在二叉搜索树中插入元素 19
17.4.3  二叉树的遍历 20
17.4.4  二叉树的类 20
主要术语 23
本章小结 23
复习题 23
编程练习 24
第18章  Java 集合构架 26
18.1  引言 26
18.2  Collection接口和AbstractCollection类 27
18.3  规则集Set 28
18.3.1  散列集HashSet 28
18.3.2  链式散列集LinkedHashSet 29
18.3.3  树形集TreeSet 30
18.4  比较器接口Comparator 32
18.5  线性表List 33
18.5.1  数组线性表ArrayList和链表LinkedList 34
18.5.2  向量类Vector 36
18.5.3  栈类Stack 38
18.6  一般类型的使用(JDK 1.5的功能) 40
18.7  图Map 40
18.8  Collections类 44
18.9  Arrays类 47
主要术语 49
主要的类和方法 49
本章小结 49
复习题 50
编程练习 52
第6篇  多线程和国际化
第19章  多线程 56
19.1  引言 56
19.2  线程的概念 56
19.3  扩展Thread类创建线程 57
19.4  实现runnable接口创建线程 59
19.5  线程的控制与通信 60
19.5.1  线程的状态 62
19.5.2  线程的优先级 63
19.6  线程组 63
19.7  线程之间的同步与协作 64
19.7.1  同步化实例与静态方法 66
19.7.2  同步语句 67
19.7.3  线程之间的协作 67
19.7.4  死锁 69
19.8  使用线程控制动画(可选) 70
19.9  在独立的线程上播放音频(可选) 72
19.10  进程条JProgressBar(可选) 76
主要术语 79
主要的类和方法 79
本章小结 79
复习题 80
编程练习 81
第20章  国际化 84
20.1  简介 84
20.2  地区类Locale 84
20.3  处理日期和时间 86
20.3.1  时区类TimeZone 86
20.3.2  日期格式类DateFormat 86
20.3.3  简单日期格式类SimpleDateFormat 87
20.3.4  日期格式符号类DateFormatSymbols 88
20.4  数字格式化 96
20.4.1  普通数字格式 96
20.4.2  货币格式 97
20.4.3  百分数格式 97
20.4.4  数字的转换 98
20.4.5  数字格式类DecimalFormat 98
20.5  资源簇(可选) 101
主要术语 106
主要的类和方法 106
本章小结 107
复习题 107
编程练习 108
第7篇  高级图形用户界面程序设计
第21章  JavaBeans、Bean事件和 MVC结构 112
21.1  引言 112
21.2  JavaBeans 112
21.3  bean属性 113
21.3.1  属性的命名方式 113
21.3.2  属性和数据域 114
21.4  bean事件 114
21.4.1  Java事件模型 114
21.4.2  事件类和事件监听器接口 114
21.4.3  源组件 115
21.4.4  监听器组件 115
21.5  创建自定义事件组 116
21.6  创建自定义源组件 118
21.7  应用现存的事件组 124
21.8  事件适配器 128
21.8.1  标准适配器 128
21.8.2  内部类适配器 131
21.8.3  匿名内部类适配器 132
21.9  模型-视图-控件 133
主要术语 139
主要的类和方法 140
本章小结 140
复习题 140
编程练习 140
第22章  容器、布局管理器和边框 144
22.1  引言 144
22.2  Swing容器的结构 144
22.2.1  框架JFrame 145
22.2.2  applet容器JApplet 145
22.2.3  面板JPanel 146
22.3  布局管理器 146
22.3.1  布局管理器CardLayout 147
22.3.2  布局管理器GridBagLayout (可选) 149
22.3.3  不使用布局管理器 153
22.3.4  布局管理器BoxLayout 155
22.3.5  布局管理器OverlayLayout 158
22.3.6  布局管理器SpringLayout 160
22.4  创建自定义布局管理器 162
22.5  滚动窗格JScrollPane 166
22.6  选项卡JTabbedPane 169
22.7  分隔窗格JSplitPane 172
22.8  Swing边框 175
主要的类和方法 182
本章小结 182
复习题 183
编程练习 184
第23章  菜单、工具栏、对话框和 内部框架 187
23.1  引言 187
23.2  菜单 187
23.2.1  创建菜单 187
23.2.2  图标、热键和快捷键 189
23.3  弹出式菜单 192
23.4  工具栏JToolBar 194
23.5  使用Action接口处理行为事件 196
23.6  对话框JOptionPane 200
23.6.1  消息对话框 200
23.6.2  确认对话框 201
23.6.3  输入对话框 202
23.6.4  选项对话框 203
23.7  创建自定义对话框 205
23.8  颜色对话框JColorChooser 208
23.9  文件对话框JFileChooser 209
23.10  创建内部框架(可选) 213
主要的类和方法 215
本章小结 216
复习题 217
编程练习 217
第24章  高级Swing组件 221
24.1  引言 221
24.2  Swing的模型-视图-控件结构 221
24.3  微调文本域JSpinner 222
24.3.1  微调文本域模型 224
24.3.2  微调文本域编辑器 226
24.4  列表框JList 229
24.4.1  JList的构造方法、属性和方法 230
24.4.2  列表框布局方向 230
24.4.3  列表框选择模式和列表框 选择模型 231
24.4.4  列表模型 234
24.4.5  列表框单元格绘制器 236
24.5  组合框JComboBox 239
24.6  表格JTable 242
24.6.1  JTable的构造方法、 属性和方法 243
24.6.2  表格模型 246
24.6.3  表格列模型 247
24.6.4  表格具体列的类TableColumn 248
24.6.5  表头类JTableHeader 248
24.6.6  表格绘制器和编辑器 253
24.6.7  自定义表格绘制器和编辑器 255
24.6.8  表格事件 258
24.7  树JTree 261
24.7.1  JTree的构造方法、属性和方法 262
24.7.2  树模型接口TreeModel及其默 认类DefaultTreeModel 264
24.7.3  结点接口TreeNode、MutableTree Node和类DefaultMutable TreeNode 265
24.7.4  树的路径类TreePath 268
24.7.5  选择接口TreeSelectionModel 和类DefaultTreeSelection Model 269
24.7.6  树结点的绘制和编辑 272
24.7.7  树的事件 274
主要的类和方法 274
本章小结 275
复习题 276
编程练习 277
第8篇  Web程序设计
第25章  Java数据库程序设计 282
25.1  引言 282
25.2  关系数据库系统 282
25.2.1  关系结构 283
25.2.2  完整性约束 283
25.3  SQL 285
25.3.1  创建和删除表 286
25.3.2  在关系数据库中使用SQL 286
25.3.3  简单插入、更新和删除 288
25.3.4  简单查询 289
25.3.5  比较运算符和布尔运算符 289
25.3.6  运算符like、between-and 和is null 290
25.3.7  列的别名 290
25.3.8  算术运算符 291
25.3.9  显示互不相同的元组 291
25.3.10  显示有序元组 291
25.3.11  联结表 292
25.4  JDBC 293
25.5  预备语句接口PreparedStatement 299
25.6  检索元数据 301
25.7  一个通用的SQL客户程序(可选) 302
25.8  批处理(可选) 307
25.9  可滚动和可更新的结果集(可选) 311
25.10  在JDBC中存储和检索图像(可选) 320
主要术语 323
主要的类和方法 323
本章小结 323
复习题 324
编程练习 325
第26章  Servlet 328
26.1  引言 328
26.2  HTML和公用网关接口 328
26.2.1  静态Web内容 328
26.2.2  动态Web内容与公用网关接口 329
26.2.3  GET方法和POST方法 329
26.2.4  从CGI到Java servlet 330
26.3  创建和运行servlet 330
26.3.1  创建servlet 330
26.3.2  编译servlet 331
26.3.3  启动Tomcat 331
26.3.4  运行servlet 332
26.4  Servlet API 332
26.4.1  接口Servlet 332
26.4.2  GenericServlet类、ServletConfig 接口和HttpServlet类 333
26.4.3  ServletRequest接口和HttpServlet- Request接口 334
26.4.4  ServletResponse接口与HttpServlet- Response接口 335
26.5  创建servlet 335
26.6  HTML窗体 337
26.7  servlet中的数据库程序设计 341
26.8  会话跟踪 345
26.8.1  使用隐藏值进行会话跟踪 345
26.8.2  使用cookie进行会话跟踪 349
26.8.3  使用servlet API进行会话跟踪 353
26.9  利用servlet发送图像 357
26.9.1  利用文件发送图像 358
26.9.2  利用Image对象发送图像 359
26.9.3  图像和文本一起发送 361
主要术语 362
主要的类和方法 363
本章小结 363
复习题 364
编程练习 365
第27章  JSP 370
27.1  引言 370
27.2  简单的JSP页面 370
27.3  如何处理JSP页面 371
27.4  JSP脚本构件 371
27.5  预定义变量 373
27.6  JSP指令 375
27.7  在JSP中使用JavaBeans 378
27.8  读取和设置属性 381
27.9  建立属性与输入参数的关联 382
27.10  在JSP网页中转交请求信息 384
JSP脚本构件的语法 389
JSP预定义变量 389
本章小结 390
复习题 390
编程练习 391
第9篇  分布式计算
第28章  网络 394
28.1  引言 394
28.2  客户/服务器计算模式 394
28.2.1  服务器套接字 395
28.2.2  客户套接字 395
28.2.3  通过套接字进行数据传输 395
28.3  网络地址类InetAddress 400
28.4  多客户服务 400
28.5  applet客户 403
28.6  发送和接收对象 405
28.7  从Web服务器上读取文件 410
28.8  JEditorPane类(可选) 412
28.9  实例学习:分布式三子棋 游戏(可选) 414
28.10  数据报套接字(可选) 424
28.10.1  DatagramPacket类和 DatagramSocket类 425
28.10.2  数据报程序设计 425
主要的类和方法 429
本章小结 430
复习题 430
编程练习 431
第29章  远程方法调用 434
29.1  引言 434
29.2  RMI基本知识 434
29.2.1  RMI是如何工作的 434
29.2.2  参数传输 435
29.2.3  RMI命名服务 436
29.3  开发RMI应用程序 436
29.4  RMI与套接字层程序设计 443
29.5  使用RMI开发三层结构的 应用程序 443
29.6  RMI的回调功能 446
主要的类和方法 455
本章小结 455
复习题 456
编程练习 456
附   录
附录A  Java关键字 457
附录B  ASCII码字符集 458
附录C  运算符优先级表 459
附录D  Java修饰符 460
附录E  UML图形符号 461
附录F  特殊浮点值 464
附录G  位运算符 465

教学资源推荐
作者: 朱鸣华,刘旭,麟杨微,罗晓芳,李慧,孙大为,赵晶
作者: 哈罗德·阿贝尔森(Harold Abelson)[美] 杰拉尔德•杰伊·萨斯曼(Gerald Jay Sussman) 著朱莉·萨斯曼(Julie Sussman)
作者: (美)Delores M. Etter; Jeanine A. Ingber 著
作者: Charles N.Fischer, Richard J.LeBlanc,Jr.