第1部分 概念篇 2
第1章 Web开发新纪元 2
1.1 从Web 2.0说起 2
1.2 鸟瞰Ajax 3
1.3 Ajax优势何在 3
1.4 Ajax幕后技术 4
1.5 体验Ajax 7
第2章 JavaScript概述 9
2.1 JavaScript特点 9
2.2 JavaScript和浏览器 10
2.2.1 JavaScript和Jscript 10
2.2.2 主流浏览器 10
2.2.3 浏览器对JavaScript的支持 11
2.3 在网页中使用JavaScript 11
2.3.1 脚本编写工具 12
2.3.2 创建JavaScript代码片段 13
2.3.3 使用单独JavaScript文件 13
2.3.4 在属性值中使用JavaScript 13
2.4 JavaScript基本语法 15
第2部分 基础篇 20
第3章 数据类型和变量 20
3.1 数据类型 20
3.1.1 数值型 20
3.1.2 布尔型 21
3.1.3 字符串型 21
3.1.4 null类型和undefined类型 21
3.1.5 引用类型 22
3.2 变量 22
3.2.1 变量的声明 22
3.2.2 变量的赋值 22
3.2.3 变量的作用域 23
3.3 数据类型的转换 25
3.3.1 转换时机 25
3.3.2 转换规则 26
第4章 运算符和表达式 30
4.1 运算符和表达式简介 30
4.2 算术运算符和算术表达式 30
4.2.1 算术运算符 30
4.2.2 对“-”运算符和“+”运算符的特别说明 31
4.2.3 对“++”运算符和“--”运算符的特别说明 32
4.3 关系运算符和关系表达式 34
4.3.1 关系运算符 34
4.3.2 “==”和“===”特别说明 35
4.4 逻辑运算符和逻辑表达式 36
4.5 赋值运算符和赋值表达式 38
4.5.1 赋值运算符 38
4.5.2 复合赋值运算符 39
4.6 其他运算符 39
4.6.1 “?:”运算符 39
4.6.2 逗号(,)运算符 41
4.6.3 void运算符 42
4.6.4 typeof运算符 43
4.6.5 对象运算符 45
4.7 运算符的优先级和结合性 45
第5章 流程控制 46
5.1 分支语句 46
5.1.1 if语句 46
5.1.2 switch语句 52
5.2 循环语句 54
5.2.1 while循环 54
5.2.2 do…while循环 55
5.2.3 for循环 57
5.2.4 break语句 58
5.2.5 continue语句 60
第6章 函数 63
6.1 函数的定义和调用 63
6.1.1 函数定义和调用方法 63
6.1.2 参数传递 66
6.1.3 在表达式中定义函数 70
6.1.4 动态创建函数 71
6.1.5 函数的嵌套 72
6.1.6 递归函数 73
6.2 arguments对象 74
6.3 作为数据的函数 77
6.4 JavaScript内置函数 78
6.4.1 escape()函数和unescape()函数 78
6.4.2 encodeURI()函数和decodeURI()函数 80
6.4.3 encodeURIComponent()函数和decodeURIComponent()函数 81
6.4.4 parseInt()函数和parseFloat()函数 82
6.4.5 isNaN()函数和isFinite()函数 84
6.4.6 eval()函数 85
第7章 对象 89
7.1 对象概述 89
7.1.1 面向对象编程思想概述 89
7.1.2 JavaScript中的对象 90
7.2 对象的类型 90
7.3 对象的定义 90
7.3.1 创建对象实例 91
7.3.2 构造函数和this关键字 92
7.3.3 创建无类型对象 94
7.4 操作对象 95
7.4.1 使用“[]”访问对象的属性和方法 95
7.4.2 添加属性和方法 97
7.4.3 重定义属性和方法 99
7.4.4 删除属性和方法 100
7.4.5 对象的废除 102
7.5 用于对象的语句 103
7.5.1 with语句 103
7.5.2 for…in语句 104
7.6 Function对象 106
7.6.1 length属性 106
7.6.2 prototype属性 107
7.6.3 call()方法和apply()方法 107
7.7 Object对象 109
7.7.1 constructor属性 109
7.7.2 toString()方法 110
7.7.3 toLocaleString()方法 111
7.7.4 valueOf()方法 111
7.7.5 利用Object()构造函数定义对象 111
7.8 Global对象 112
第8章 面向对象的JavaScript进阶 114
8.1 面向对象编程特性 114
8.2 面向对象的JavaScript 115
8.2.1 实例属性和实例方法 115
8.2.2 类属性和类方法 116
8.2.3 实现数据的封装 118
8.3 继承的实现 120
8.3.1 利用原型对象实现继承 120
8.3.2 通过构造函数调用实现继承 122
8.3.3 使用call()方法和apply()方法实现继承 123
第9章 数组与字符串 126
9.1 使用数组 126
9.1.1 数组和数组元素 126
9.1.2 创建数组 126
9.1.3 使用数组元素 128
9.1.4 多维数组 130
9.1.5 数组的长度 132
9.1.6 合并数组 133
9.1.7 添加和删除数组元素 135
9.1.8 将数组元素转换为字符串 139
9.1.9 反转数组元素 141
9.1.10 截取部分数组元素 142
9.1.11 数组的排序 143
9.2 使用字符串 144
9.2.1 字符串对象 144
9.2.2 字符串的长度 145
9.2.3 连接字符串 146
9.2.4 大小写转换 147
9.2.5 确定指定位置的字符 149
9.2.6 确定指定字符的位置 150
9.2.7 分割字符串 151
9.2.8 使用子字符串 153
9.2.9 比较两个字符串的大小 155
9.2.10 根据Unicode编码生成字符串 157
9.2.11 修饰字符串 158
9.2.12 String对象的其他方法 160
第10章 数学运算与日期时间 161
10.1 数学运算 161
10.1.1 Math对象的属性 161
10.1.2 计算数值的绝对值 162
10.1.3 计算数值的三角函数 164
10.1.4 数值的舍入运算 165
10.1.5 产生随机数 167
10.1.6 计算最大值和最小值 168
10.1.7 幂运算 170
10.1.8 对数运算与开平方运算 171
10.2 日期与时间 172
10.2.1 Date对象 173
10.2.2 获取日期时间信息 174
10.2.3 设置日期时间的值 176
10.2.4 将日期时间转换为字符串 178
10.2.5 Date对象的其他方法 179
第11章 数值与异常处理 184
11.1 处理数值 184
11.1.1 Number对象的属性 184
11.1.2 Number对象的方法 185
11.2 异常处理 187
11.2.1 异常概述 187
11.2.2 Error对象 187
11.2.3 使用try…catch..finally语句处理异常 188
11.2.4 手动抛出异常 190
第12章 正则表达式 192
12.1 正则表达式基本语法 192
12.2 使用正则表达式对象 195
12.2.1 RegExp对象 195
12.2.2 String对象 200
12.3 正则表达式应用实例 204
12.3.1 验证电子邮件地址 204
12.3.2 验证信用卡号 206
12.3.3 验证身份证号码 209
12.3.4 验证IP地址 213
第13章 浏览器对象模型(BOM) 216
13.1 浏览器对象模型概述 216
13.2 Screen对象 217
13.3 Window对象 217
13.3.1 窗口的打开与关闭 217
13.3.2 改变窗口位置和大小 220
13.3.3 滚动窗口 223
13.3.4 系统对话框 224
13.3.5 状态栏 225
13.3.6 定时设定 227
13.4 Navigator对象 230
13.5 History对象 232
13.6 Location对象 233
第14章 Document对象 239
14.1 Document对象概述 239
14.2 Document对象的方法 239
14.3 Document对象的属性 241
14.3.1 Document对象的颜色属性 241
14.3.2 Document对象的信息属性 242
14.3.3 Document对象的对象集合属性 244
14.4 链接 244
14.5 图像 248
14.6 锚点 254
14.7 表单 254
14.8 插件 254
14.9 JavaScript与Java applet 256
14.9.1 创建Java applet 256
14.9.2 在网页中嵌入Java applet 256
14.9.3 在JavaScript中使用Java applet 257
14.10 JavaScript与音频插件 259
14.10.1 音频格式与音频插件 259
14.10.2 使用JavaScript控制音频 259
14.11 JavaScript与Flash 263
14.11.1 在网页中嵌入Flash动画 263
14.11.2 在JavaScript中使用Flash 263
14.12 处理cookie 266
14.12.1 cookie概述 266
14.12.2 写入cookie 267
14.12.3 读取cookie 267
14.12.4 删除cookie 267
第15章 表单及表单元素 271
15.1 Form对象 271
15.1.1 Form对象概述 271
15.1.2 Form对象属性 271
15.1.3 Form对象的方法 273
15.2 表单元素 276
15.2.1 表单元素概述 276
15.2.2 Input对象 277
15.3 按钮 279
15.4 输入框 279
15.5 复选框和单选按钮 283
15.6 选择框和选项 286
15.7 表单验证 289
第16章 DOM文档对象模型 295
16.1 DOM概述 295
16.2 树与结点 296
16.2.1 HTML文档与DOM树 296
16.2.2 节点 296
16.3 使用DOM HTML API 297
16.3.1 DOM HTML API简述 297
16.3.2 HTMLCollection 299
16.3.3 属性的命名 299
16.3.4 添加和删除选项 300
16.3.5 处理表格 302
16.4 使用DOM Core API 307
16.4.1 Node和NodeList 307
16.4.2 查找元素与设置元素属性 307
16.4.3 遍历文档元素 310
16.4.4 创建文档元素 313
16.4.5 动态修改文档的内容 314
第17章 事件处理 319
17.1 基本事件模型 319
17.1.1 事件与事件处理器 319
17.1.2 使用HTML标签属性绑定事件处理器 320
17.1.3 使用JavaScript对象属性绑定事件处理器 321
17.1.4 事件处理函数的作用域和this关键字 323
17.1.5 改变事件的默认行为 325
17.2 Netscape的事件模型 328
17.2.1 Netscape的Event对象 328
17.2.2 事件的传递和捕获 330
17.3 IE的事件模型 331
17.3.1 使用〈script〉标签的属性绑定事件处理器 331
17.3.2 事件处理器的注册与移除 333
17.3.3 IE的Event对象 333
17.3.4 setCapture()方法和releaseCapture()方法 334
17.3.5 冒泡事件传递机制 337
17.4 DOM 2的事件模型 338
17.4.1 使用addEventListener()方法注册事件处理器 339
17.4.2 事件的传递机制 339
17.4.3 DOM 2的Event接口 339
17.4.4 取消事件的默认行为与停止事件的传递 342
17.4.5 UIEvent和MouseEvent 342
第3部分 进阶篇第18章 层叠样式表 348
18.1 样式表简介 348
18.2 在网页中使用CSS 349
18.2.1 嵌入样式表 349
18.2.2 链接外部样式表文件 350
18.2.3 内联样式 350
18.3 CSS选择器 350
18.3.1 标签选择器 350
18.3.2 类选择器 351
18.3.3 ID选择器 351
18.3.4 属性选择器 352
18.3.5 包含选择器 352
18.3.6 组合选择器 353
18.4 样式的继承与优先级 355
18.5 CSS属性 355
18.5.1 字体属性 355
18.5.2 文本属性 357
18.5.3 背景属性 359
18.5.4 定位属性 361
18.5.5 尺寸属性 363
18.5.6 布局属性 364
18.5.7 边框属性 367
18.6 样式编程 370
18.6.1 使用Style对象 370
18.6.2 使用className属性 371
18.6.3 JavaScript下拉菜单 375
第19章 JavaScript与XML 378
19.1 什么是XML 378
19.2 XML语法 378
19.3 XML文档讲解 379
19.3.1 查看完整的XML文档 379
19.3.2 XML声明 379
19.3.3 元素 380
19.3.4 属性 380
19.3.5 CDATA 381
19.3.6 文本 381
19.3.7 实体 381
19.4 XML命名空间 381
19.4.1 加入XML命名空间 381
19 4.2 添加默认命名空间 382
19.5 文档类型定义 382
19.5.1 介绍DTD 383
19.5.2 声明元素类型 383
19.5.3 声明属性列表 384
19.5.4 声明实体 385
19.5.5 在XML文档中关联DTD文档 385
19.6 XML Schema 387
19.6.1 什么是XML Schema 387
19.6.2 XSD简单元素 387
19.6.3 定义XSD属性 388
19.6.4 定义XSD限定XML内容 388
19.6.5 定义XSD复合元素 389
19.6.6 XSD的〈any〉元素 392
19.6.7 XSD的〈anyAttribute〉元素 392
19.6.8 在XML文档中引用XSD 393
19.7 XML DOM API概述 394
19.8 使用XML DOM核心API 395
19.9 使用IE处理XML 398
19.9.1 使用IE加载XML文档 398
19.9.2 对W3C的扩展 399
19.10 使用Firefox处理XML文档 406
19.10.1 使用Firefox创建DOM文档 406
19.10.2 Firefox对W3C XML DOM实现 408
第20章 XMLHttpRequest对象 409
20.1 XMLHttpRequest对象 409
20.1.1 创建XMLHttpRequest对象 409
20.1.2 XMLHttpRequest对象的属性和方法 411
20.2 使用XMLHttpRequest对象发送请求 412
20.2.1 打开请求 412
20.2.2 发送请求 412
20.2.3 设置回调函数 413
20.3 处理服务器响应 414
20.3.1 HTTP就绪状态和HTTP状态码 415
20.3.2 读取响应文本 418
20.3.3 读取响应XML 421
20.4 XMLHttpRequest对象的其他方法 426
20.4.1 设置和读取HTTP头信息 426
20.4.2 使用abort方法取消请求 427
第21章 Prototype框架 429
21.1 Prototype框架简介 429
21.2 实用函数 430
21.2.1 $()函数 430
21.2.2 $$()函数 432
21.2.3 $A()函数 434
21.2.4 $F()函数 434
21.2.5 $H()函数 436
21.2.6 getElementsByClassName()函数 436
21.2.7 Try.these()函数 438
21.3 Prototype中的扩展类 440
21.3.1 对String类的扩展 440
21.3.2 对Array类的扩展 441
21.3.3 对Event类的扩展 441
21.4 Prototype中的自定义对象和类 445
21.4.1 Element对象 445
21.4.2 Enumerable对象 449
21.4.3 Form对象 450
21.4.4 Form.Element对象 451
21.4.5 Hash类 451
21.4.6 Form.Observer类和Form.Element.Observer类 453
21.5 Prototype对Ajax的支持 455
21.5.1 Ajax.Request类 455
21.5.2 Ajax.Responders对象 458
21.5.3 Ajax.Updater类 459
21.5.4 Ajax.PeriodicalUpdater类 460
第22章 DWR框架 464
22.1 DWR体验 464
22.1.1 DWR概述 464
22.1.2 DWR的下载与安装 465
22.2 使用DWR 469
22.2.1 编写Java处理类 469
22.2.2 DWR的配置文件 470
22.3 DWR的创建 471
22.3.1 配置DWR的创建 471
22.3.2 使用new创建 472
22.3.3 使用none创建 472
22.3.4 使用scripted创建 473
22.4 DWR辅助转换 474
22.4.1 普通类型转换 474
22.4.2 对象类型转换 475
22.4.3 集合类型转换 476
22.5 声明方法 476
22.6 调用远程Java对象的方法 477
22.6.1 调用远程Java对象方法的配置 477
22.6.2 调用Java对象的方法 478
22.7 engine.js 479
22.8 util.js 480
22.8.1 $()函数 481
22.8.2 addOptions()和removeAllOptions() 482
22.8.3 addRows()和removeAllRows() 486
22.8.4 操作HTML元素值 489
22.8.5 其他工具函数 491
22.9 整合Java EE主流框架 491
22.9.1 访问Servlet API 491
22.9.2 整合Struts框架 493
22.9.3 整合Spring框架 494
22.10 DWR高级应用 496
22.10.1 Annotations 496
22.10.2 反向Ajax 498
22.10.3 调用元数据 499
22.10.4 错误和异常处理 500
22.10.5 读取其他URL中的数据 501
第4部分 实战篇第23章 教师博客系统 504
23.1 项目背景 504
23.2 系统架构 504
23.3 功能预览 506
23.3.1 学生模块功能预览 506
23.3.2 教师模块功能预览 508
23.4 需求分析 509
23.4.1 项目需求 509
23.4.2 用例分析 510
23.5 数据模型 511
23.5.1 E-R图 511
23.5.2 数据表定义说明 511
23.5.3 创建数据库的脚本代码 513
23.6 功能分析与设计 514
23.6.1 创建模型类 514
23.6.2 安装FCKEditor编辑器插件 515
23.6.3 在网页中使用雅虎日历组件 515
23.6.4 实现教师注册功能 516
23.6.5 实现教师登录功能 519
23.6.6 实现新建日志的功能 521
23.6.7 实现日志列表的Ajax分页功能 522
23.6.8 实现日志的删除功能 524
23.6.9 实现留言的删除功能 525
23.6.10 实现首页日志列表功能 526
23.6.11 实现导航菜单的功能 527
23.6.12 实现留言列表以及新建留言的功能 529