《Web程序设计(第8版)》全面透彻地介绍客户端和服务器端编程所需的工具和技术,讲述如何运用
最新Web技术开发独立于平台的站点。本书开篇带您建立一个基础XHTML网站,然后循序渐进地介绍为
基础网站添加功能的各种新语言和技术。为提高内容的权威性和准确度,本书对上一版内容做了细致入
微的修改,融入了HTML5的canvas元素、Flash CS 5.5、NetBeans 7和Rails 3.1.1、Android软件开发
等最新技术。本书既可作为高校教材,也可供专业Web编程人员参考使用。
◆ Web编程基础知识
◆ XHTML和CSS
◆ JavaScript的核心内容
◆ Flash开发环境
◆ PHP和Ajax技术
◆ Ruby编程语言和Rails框架
◆ Android软件开发与ASP.NET简介
◆ Java和Java applet
Robert W. Sebesta拥有美国宾夕法尼亚州立大学计算机科学博士学位,是美国科罗拉多大学斯普林
斯校区计算机科学系的荣誉退休副教授和前系主任,从事计算机教育30多年,曾编著多本经典教材,代
表作除本书外,还有《编程语言原理(第10版)》(978-7-302-31112-6,清华大学出版社引进并出版)。
Robert W. Sebesta是ACM和IEEE计算机学会的成员。他的专业研究方向是:编程语言的设计和评
估、编译器设计、软件测试方法和工具。他还曾兼任联邦快递、HP、Ford Microelectronics、Paramax
和Labtek等多家知名公司的IT顾问。
目 录
第1章 基础知识1
1.1 Inter简介2
1.1.1 起源2
1.1.2 Inter的含义2
1.1.3 IP地址3
1.1.4 域名3
1.2 万维网4
1.2.1 起源5
1.2.2 Web还是Inter5
1.3 Web浏览器6
1.4 Web服务器7
1.4.1 Web服务器操作7
1.4.2 服务器的一般特性8
1.4.3 Apache9
1.4.4 IIS9
1.5 统一资源定位符9
1.5.1 URL的格式10
1.5.2 URL路径10
1.6 多用途网际邮件扩充协议11
1.6.1 类型说明11
1.6.2 实验性文档类型12
1.7 超文本传输协议12
1.7.1 请求阶段13
1.7.2 响应阶段14
1.8 安全性15
1.9 Web编程工具箱17
1.9.1 HTML概述17
1.9.2 创建HTML文档的工具18
1.9.3 插件和过滤器18
1.9.4 XML概述19
1.9.5 JavaScript概述20
1.9.6 Flash概述20
1.9.7 PHP概述20
1.9.8 Ajax概述21
1.9.9 Servlet、JavaServer Pages和JavaServer Faces概述21
1.9.10 ASP.NET概述22
1.9.11 Ruby概述22
1.9.12 Rails概述23
1.10 本章小结23
1.11 复习题25
1.12 练习题26
第2章 HTML/XHTML简介29
2.1 HTML和XHTML的起源和演变29
2.1.1 HTML和XHTML的版本30
2.1.2 HTML与XHTML32
2.2 基本语法33
2.3 HTML文档的标准结构34
2.4 基本的文本标记35
2.4.1 段落35
2.4.2 换行36
2.4.3 保留空白字符37
2.4.4 标题38
2.4.5 文本块引用39
2.4.6 字体样式与大小40
2.4.7 字符实体41
2.4.8 水平线42
2.4.9 meta元素的其他用法42
2.5 图片42
2.5.1 图片格式43
2.5.2
元素43
2.5.3 XHTML文档的验证45
2.6 超链接48
2.6.1 链接48
2.6.2 位于文档内部的目标50
2.6.3 使用链接51
2.7 列表51
2.7.1 无序列表51
2.7.2 有序列表52
2.7.3 定义列表54
2.8 表格55
2.8.1 基本的表格标签56
2.8.2 rowspan与colspan特性57
2.8.3 表格分块59
2.8.4 表格的使用59
2.9 表单60
2.9.1 form元素60
2.9.2 input元素61
2.9.3 select元素66
2.9.4 textarea元素68
2.9.5 动作按钮69
2.9.6 一个完整的表单示例69
2.10 audio元素72
2.11 video元素73
2.12 组织元素75
2.13 time元素77
2.14 HTML与XHTML之间的语法差异77
2.15 本章小结79
2.16 复习题80
2.17 练习题81
第3章 层叠样式表83
3.1 简介83
3.2 样式表的层次84
3.3 样式说明格式85
3.4 选择器格式86
3.4.1 简单的选择器格式86
3.4.2 类选择器87
3.4.3 通用选择器87
3.4.4 id选择器87
3.4.5 上下文选择器88
3.4.6 伪类89
3.4.7 通配选择器90
3.5 属性值的格式90
3.6 字体属性91
3.6.1 字体族91
3.6.2 字体大小92
3.6.3 字体变体93
3.6.4 字体样式93
3.6.5 字体粗细93
3.6.6 简写字体属性94
3.6.7 文本修饰96
3.6.8 文本间距97
3.7 列表属性98
3.8 文本对齐102
3.9 颜色104
3.9.1 颜色组104
3.9.2 color属性104
3.10 盒模型105
3.10.1 边框105
3.10.2 内边距和外边距108
3.11 背景图片110
3.12 标签和3.13 冲突解决方案113
3.14 本章小结115
3.15 复习题116
3.16 练习题117
第4章 JavaScript基础知识119
4.1 JavaScript概述119
4.1.1 起源119
4.1.2 JavaScript与Java120
4.1.3 JavaScript的用途120
4.1.4 浏览器和HTML/JavaScript文档121
4.2 面向对象和JavaScript122
4.3 一般的语法特征123
4.4 基本数据类型、操作和表达式125
4.4.1 基本数据类型125
4.4.2 数值型和字符串字面量126
4.4.3 其他基本数据类型126
4.4.4 声明变量127
4.4.5 数值运算符127
4.4.6 Math对象128
4.4.7 Number对象129
4.4.8 字符串连接运算符129
4.4.9 隐式类型转换129
4.4.10 显式类型转换130
4.4.11 String属性和方法131
4.4.12 typeof运算符132
4.4.13 赋值语句132
4.4.14 Date对象133
4.5 屏幕输出和键盘输入133
4.6 控制语句136
4.6.1 控制表达式137
4.6.2 选择语句138
4.6.3 switch语句138
4.6.4 循环语句141
4.7 创建和修改对象143
4.8 数组144
4.8.1 创建Array对象144
4.8.2 Array对象的特征145
4.8.3 Array方法146
4.9 函数148
4.9.1 基础知识148
4.9.2 局部变量149
4.9.3 参数150
4.9.4 复习sort方法152
4.10 示例1153
4.11 构造函数154
4.12 利用正则表达式进行模式匹配155
4.12.1 字符和字符类模式155
4.12.2 锚157
4.12.3 模式修饰符157
4.12.4 String对象中的其他模式匹配方法158
4.13 示例2159
4.14 脚本中的错误160
4.15 本章小结162
4.16 复习题163
4.17 练习题165
第5章 JavaScript与HTML文档167
5.1 JavaScript的执行环境168
5.2 文档对象模型168
5.3 在JavaScript中访问元素172
5.4 事件与事件处理174
5.4.1 事件处理的基本概念174
5.4.2 事件、特性和标签175
5.5 处理主体元素的事件177
5.6 处理按钮元素的事件178
5.7 处理文本框和密码框元素的事件183
5.7.1 focus事件183
5.7.2 验证表单输入185
5.8 DOM 2事件模型191
5.8.1 事件传播192
5.8.2 事件处理程序的注册193
5.8.3 DOM 2事件模型示例194
5.9 canvas元素196
5.10 navigator对象200
5.11 DOM树的遍历和修改202
5.11.1 DOM树的遍历202
5.11.2 DOM树的修改202
5.12 本章小结202
5.13 复习题203
5.14 练习题204
第6章 利用JavaScript开发动态文档207
6.1 简介207
6.2 元素定位208
6.2.1 绝对定位208
6.2.2 相对定位211
6.2.3 静态定位212
6.3 移动元素212
6.4 元素可见性215
6.5 修改颜色和字体216
6.5.1 修改颜色216
6.5.2 修改字体218
6.6 动态内容219
6.7 堆叠元素221
6.8 定位鼠标光标224
6.9 响应鼠标单击227
6.10 缓慢移动元素228
6.11 拖放元素231
6.12 本章小结234
6.13 复习题235
6.14 练习题235
第7章 XML简介237
7.1 简介237
7.2 XML的用途239
7.3 XML语法240
7.4 XML文档结构242
7.5 名称空间243
7.6 XML架构245
7.6.1 架构的基本原理245
7.6.2 架构的定义245
7.6.3 定义架构实例247
7.6.4 数据类型概述247
7.6.5 简单类型248
7.6.6 复杂类型249
7.6.7 架构实例的验证251
7.7 显示没有格式化的XML文档252
7.8 通过CSS显示XML文档253
7.9 XSLT样式表254
7.9.1 XSLT概述255
7.9.2 用于表现的XSL转换256
7.10 XML处理器262
7.10.1 XML处理器的用途262
7.10.2 SAX方式263
7.10.3 DOM方式263
7.11 Web服务264
7.12 本章小结265
7.13 复习题266
7.14 练习题267
第8章 Flash简介269
8.1 Flash的起源与用途269
8.2 初步了解Flash创作环境270
8.3 绘图工具274
8.3.1 预定义图形274
8.3.2 线条和徒手画278
8.3.3 文本278
8.3.4 导入图形279
8.3.5 元件和库280
8.4 静态图形281
8.5 动画和声音285
8.5.1 动画简介285
8.5.2 移动图形285
8.5.3 更多动画288
8.5.4 形状动画289
8.5.5 声音291
8.6 用户交互294
8.6.1 动作294
8.6.2 示例295
8.7 小结298
8.8 复习题298
8.9 练习题300
第9章 PHP简介301
9.1 PHP的起源和用途301
9.2 PHP概述302
9.3 基本语法特征302
9.4 基本数据类型、操作和表达式303
9.4.1 变量303
9.4.2 整数类型304
9.4.3 双精度类型304
9.4.4 字符串类型304
9.4.5 布尔类型305
9.4.6 算术运算符和表达式305
9.4.7 字符串操作306
9.4.8 标量类型转换307
9.4.9 赋值运算符307
9.5 输出308
9.6 控制语句309
9.6.1 关系运算符309
9.6.2 布尔运算符310
9.6.3 选择语句310
9.6.4 循环语句311
9.6.5 示例311
9.7 数组312
9.7.1 创建数组313
9.7.2 访问数组元素314
9.7.3 数组处理函数314
9.7.4 数组元素的按序访问316
9.7.5 数组排序317
9.8 函数319
9.8.1 函数的基本特征319
9.8.2 参数320
9.8.3 变量的作用域321
9.8.4 变量的生命周期322
9.9 模式匹配323
9.10 表单处理325
9.11 cookie331
9.11.1 cookie简介331
9.11.2 PHP对cookie的支持332
9.12 会话跟踪333
9.13 本章小结333
9.14 复习题334
9.15 练习题335
第10章 Ajax简介339
10.1 Ajax概述339
10.1.1 Ajax的历史339
10.1.2 Ajax技术340
10.1.3 实现Ajax341
10.2 Ajax基础知识342
10.2.1 应用程序342
10.2.2 表单文档342
10.2.3 请求阶段344
10.2.4 响应文档346
10.2.5 接收器阶段347
10.2.6 跨浏览器支持349
10.3 返回文档的格式350
10.3.1 HTML350
10.3.2 XML351
10.3.3 JavaScript Object Notation352
10.4 Ajax工具包354
10.4.1 Dojo354
10.4.2 示例356
10.4.3 Prototype359
10.5 安全性与Ajax360
10.6 本章小结360
10.7 复习题361
10.8 练习题362
第11章 Java Web软件363
11.1 Servlet简介363
11.1.1 概述363
11.1.2 详解364
11.1.3 Servlet容器367
11.2 NetBeans集成开发环境368
11.3 调查表示例375
11.4 在客户端存储信息382
11.4.1 cookie382
11.4.2 Servlet对cookie的支持383
11.4.3 示例384
11.5 JSP390
11.5.1 开发JSP的动机390
11.5.2 JSP文档391
11.5.3 表达式语言393
11.5.4 JSTL中用于控制的动作元素396
11.6 JavaBean400
11.7 模型-视图-控制器应用体系结构404
11.8 JSF405
11.8.1 标签库405
11.8.2 JSF事件处理406
11.8.3 示例应用程序407
11.9 本章小结411
11.10 复习题412
11.11 练习题413
第12章 ASP.NET简介417
12.1 .NET Framework概述417
12.1.1 背景417
12.1.2 .NET语言418
12.1.3 公共语言运行库418
12.1.4 公共语言基础结构419
12.2 C#简介420
12.2.1 起源420
12.2.2 基本数据类型和表达式420
12.2.3 数据结构421
12.2.4 控制语句422
12.2.5 类、方法和结构422
12.2.6 异常处理423
12.2.7 特性423
12.2.8 输出424
12.3 ASP.NET简介424
12.3.1 基本知识424
12.3.2 ASP.NET文档426
12.3.3 代码隐藏文件428
12.4 ASP.NET控件429
12.4.1 Web控件430
12.4.2 简单ASP.NET文档的生命周期431
12.4.3 Visual Studio434
12.4.4 ASP.NET事件439
12.4.5 用代码创建控件元素440
12.4.6 控件的响应输出441
12.4.7 列表控件441
12.4.8 验证控件445
12.4.9 主文档451
12.5 ASP.NET AJAX454
12.6 Web服务459
12.6.1 构建Web服务459
12.6.2 使用Web服务462
12.6.3 传播Web服务466
12.7 本章小结467
12.8 复习题468
12.9 练习题469
第13章 基于Web的数据库访问471
13.1 关系数据库471
13.2 结构化查询语言简介473
13.2.1 SELECT命令474
13.2.2 连接474
13.2.3 INSERT命令476
13.2.4 UPDATE命令476
13.2.5 DELETE命令476
13.2.6 DROP命令477
13.2.7 CREATE TABLE命令477
13.3 数据库访问的体系结构477
13.3.1 客户端-服务器体系结构478
13.3.2 Microsoft ODBC体系结构478
13.3.3 PHP和数据库访问479
13.3.4 Java BC体系结构479
13.4 MySQL数据库系统479
13.5 使用PHP和MySQL实现数据库访问482
13.5.1 特殊字符的潜在问题482
13.5.2 连接MySQL并选择数据库483
13.5.3 请求MySQL操作484
13.5.4 PHP-MySQL示例485
13.6 使用BC和MySQL实现数据库访问489
13.6.1 BC和MySQL490
13.6.2 元数据492
13.6.3 示例493
13.7 使用ASP.NET和MySQL实现数据库访问496
13.7.1 MySQL和ADO.NET496
13.7.2 数据绑定498
13.7.3 连接字符串498
13.8 本章小结502
13.9 复习题503
13.10 练习题504
第14章 Android软件开发507
14.1 概述507
14.2 工具509
14.3 Android应用程序的体系结构509
14.3.1 活动509
14.3.2 视图文件510
14.3.3 Intent510
14.3.4 实现510
14.4 Android应用程序的执行模型510
14.5 视图组511
14.6 简单视图512
14.6.1 TextView元素512
14.6.2 EditText元素513
14.6.3 Button元素514
14.6.4 小部件的事件和事件处理程序514
14.7 示例应用程序515
14.8 在Android设备上运行应用程序523
14.9 使用Intent类调用其他活动524
14.10 示例应用程序:第二个活动525
14.11 更多小部件532
14.11.1 ToggleButton532
14.11.2 Checkbox533
14.11.3 RadioButton534
14.12 处理列表535
14.12.1 ListView视图组535
14.12.2 一个使用ListView和ArrayAdapter的示例536
14.13 数据持久化540
14.14 调试应用程序543
14.15 本章小结545
14.16 复习题546
14.17 练习题547
第15章 Ruby简介549
15.1 Ruby的起源与用途549
15.2 标量类型及其操作550
15.2.1 数值与字符串字面量550
15.2.2 变量和赋值语句551
15.2.3 数值运算符552
15.2.4 String类的方法553
15.3 简单的输入输出556
15.3.1 屏幕输出557
15.3.2 键盘输入557
15.4 控制语句559
15.4.1 控制表达式559
15.4.2 选择语句和循环语句560
15.5 数组基础563
15.5.1 for-in语句564
15.5.2 数组和列表的内置方法565
15.5.3 示例567
15.6 散列568
15.7 方法569
15.7.1 基础知识569
15.7.2 方法中的局部变量570
15.7.3 参数570
15.8 类573
15.8.1 类的基础知识573
15.8.2 访问控制575
15.8.3 继承577
15.9 块和迭代器578
15.10 模式匹配580
15.10.1 模式匹配的基础知识580
15.10.2 存储匹配582
15.10.3 替换582
15.11 本章小结583
15.12 复习题583
15.13 练习题584
第16章 Rails简介587
16.1 Rails概述587
16.2 文档请求589
16.2.1 静态文档Hello World589
16.2.2 动态文档593
16.3 使用数据库的Rails应用程序594
16.3.1 构建基本应用程序595
16.3.2 完成应用程序602
16.3.3 修改数据库606
16.3.4 布局和样式表608
16.4 本章小结609
16.5 复习题610
16.6 练习题611
附录A Java简介613
附录B 命名颜色及其十六进制值627