第1章 前端开发与Ajax技术 1
1.1重新思考Web应用 2
1.1.1应用系统的发展史 2
1.1.2传统Web应用的优势和缺点 3
1.2重新设计Web应用 4
1.2.1富Intemet应用 4
1.2.2改进的服务器通信 5
1.2.3丰富的客户端交互 6
1.3前端开发介绍 7
1.3.1 XMLHttpRequest简介 7
1.3.2前端开发的核心技术 7
1.3.3前端Ajax的特征 9
1.3.4 Ajax带来的优势 10
1.4前端开发体验:Ajax聊天室 11
1.4.1实现业务逻辑组件 12
1.4.2注册、登录控制器 15
1.4.3注册、登录视图 16
1.4.4异步发送请求 17
1.4.5聊天控制器 18
1.4.6解析服务器响应 21
1.4.7何时发送请求 21
1.5前端开发的技术难点 24
1.6本章小结 25
第2章 HTML5增强的XMLHttpRequest对象 26
2.1 XMLHttpRequest对象的方法和属性 27
2.1.1 XMLHttpRequest对象的方法 27
2.1.2 XMLHttpRequest对象的属性 30
2.1.3 XMLHttpRequest对象的事件 32
2.2发送请求 33
2.2.1发送简单请求 33
2.2.2发送GET请求 34
2.2.3发送POST请求 36
2.2.4发送XML请求 37
2.2.5发送表单数据 40
2.2.6发送Blob对象 42
2.3处理响应 44
2.3.1处理响应的时机 44
2.3.2使用文本响应 44
2.3.3使用JSON响应 45
2.3.4使用Blob或ArrayBuffer响应 48
2.4 XMLHttpRequest对象的运行周期 50
2.5跨域请求和安全性问题 50
2.5.1跨域请求 50
2.5.2安全性问题 53
2.5.3性能问题 54
2.6本章小结 56
第3章 jQuery库详解 57
3.1 jQuery入门 58
3.1.1理解jQuery的设计 58
3.1.2下载和安装jQuery 59
3.1.3让jQuery与其他JavaScript库共存 60
3.2获取jQuery对象 61
3.2.1 jQuery核心函数 61
3.2.2 jQuery与jQuery.holdReady 62
3.2.3以CSS选择器访问DOM元素 63
3.2.4以伪类选择器访问DOM元素 65
3.2.5表单相关的选择器 70
3.3 jQuery操作类数组的工具方法 72
3.3.1过滤相关方法 74
3.3.2仿DOM导航查找的相关方法 76
3.3.3串联方法 78
3.4 jQuery支持的方法 79
3.4.1 jQuery命名空间的方法 80
3.4.2数据存储的相关方法 83
3.4.3操作属性的相关方法 84
3.4.4操作 CSS属性的相关方法 86
3.4.5操作元素内容的相关方法 89
3.4.6操作DOM节点的相关方法 90
3.5 jQuery事件相关方法 96
3.5.1绑定事件处理函数 96
3.5.2特定事件相关的方法 98
3.5.3事件对象 99
3.6动画效果相关的方法 100
3.6.1简单动画和复杂动画 100
3.6.2操作动画队列 103
3.7 jQuery的回调支持 104
3.7.1回调支持的基本用法 104
3.7.2创建Callbacks对象支持的选项 106
3.8 Ajax相关方法 108
3.8.1三个工具方法 108
3.8.2使用load方法 109
3.8.3 jQuery.ajax(options)与jQuery.ajaxSetup(options) 111
3.8.4使用get/post方法 112
3.9 jQuery的Deferred对象 115
3.9.1 jQuery的异步调用 115
3.9.2为多个耗时操作指定回调函数 119
3.9.3为普通对象增加Defered接口 119
3.9.4 jQuery对象的promise方法 120
3.10扩展jQuery和jQuery插件 121
3.11本章小结 122
第4章 基于jQuery的应用:电子相册系统 123
4.1实现持久层 124
4.1.1实现持久化类 124
4.1.2配置SessionFactory 126
4.2实现DAO组件 127
4.2.1开发通用DAO组件 127
4.2.2 DAO接口定义 130
4.2.3完成DAO组件的实现类 131
4.3实现业务逻辑层 132
4.3.1实现业务逻辑组件 132
4.3.2配置业务逻辑组件 134
4.4实现客户端调用 135
4.4.1访问业务逻辑组件 135
4.4.2处理用户登录 136
4.4.3获得用户相片列表 138
4.4.4处理翻页 140
4.4.5使用JQuery实现文件上传 141
4.4.6加载页面时的处理 144
4.5本章小结 145
第5章 AngularJS详解 147
5.1 AngularJS入门 148
5.1.1理解AngularJS的基本设计 148
5.1.2下载和安装AngularJS 149
5.2表达式 150
5.2.1简单表达式 150
5.2.2复合对象表达式 151
5.2.3 AngularJS表达式的容错性 152
5.2.4 AngularJS表达式与JavaScript表达式 152
5.3模块与控制器 153
5.3.1模块的加载 153
5.3.2控制器初始化$scope对象 155
5.3.3 $rootScope作用域 157
5.3.4 $watch方法的使用 158
5.4过滤器 159
5.4.1内置过滤器 159
5.4.2在表达式中使用过滤器 160
5.4.3在指令中使用过滤器 162
5.4.4自定义过滤器 162
5.5函数API 164
5.5.1扩展型函数 164
5.5.2 jqLite函数 168
5.5.3判断型函数 169
5.6 指令 170
5.6.1表单相关的指令 170
5.6.2表单的输入校验 175
5.6.3事件相关的指令 178
5.6.4流程控制相关的指令 179
5.6.5绑定相关的指令 183
5.6.6 DOM及DOM状态相关指令 187
5.6.7 自定义指令 193
5.6.8自定义指令的scope属性 195
5.6.9自定义指令的transclude属性 197
5.6.10自定义指令的link和compile属性 198
5.6.11自定义指令的controller和controllerAs属性 202
5.6.12自定义指令的require属性 203
5.7调用内置服务 205
5.7.1 $animate服务 205
5.7.2 $cacheFactory服务 207
5.7.3 $compile服务 209
5.7.4 $document、 $window、 $timeout、$interval和$rootElement 211
5.7.5 $parse服务 214
5.7.6 $interpolate服务 214
5.7.7 $log服务 215
5.7.8 $q服务 216
5.7.9 $templateCache服务 218
5.8自定义服务 219
5.8.1使用factory()方法创建自定义服务 219
5.8.2使用service()方法创建自定义服务 220
5.8.3使用provider()方法创建自定义服务 221
5.8.4使用$provide服务创建自定义服务 223
5.8.5在过滤器中使用自定义服务 225
5.9依赖注入 226
5.9.1依赖注入机制简介 226
5.9.2使用$injector对象获取组件 228
5.9.3隐式依赖注入 230
5.9.4行内数组式依赖注入 230
5.9.5标记式依赖注入 231
5.10与服务器交互 232
5.10.1 $http服务 232
5.10.2 $http的快捷方法 235
5.10.3使用$http上传文件 237
5.10.4使用$resource服务 239
5.11多视图和路由 240
5.11.1使用$routeProvider配置路由规则 240
5.11.2创建多视图 242
5.11.3通过路由切换视图 244
5.11.4使用$location实现多视图切换 246
5.12使用ui-router框架实现多视图 248
5.12.1 ui-router的下载和安装 248
5.12.2使用$stateProvider配置路由 248
5.12.3多视图切换与$state 250
5.12.4多个命名的嵌套视图 252
5.13本章小结 255
第6章 Bootstrap全局样式 256
6.1 Bootstrap 257
6.1.1 Bootstrap简介 257
6.1.2下载和安装Bootstrap 257
6.2网格布局 260
6.2.1网格布局基础 261
6.2.2多余的列另起一行 264
6.2.3响应式列重置 264
6.2.4单元格偏移 266
6.2.5单元格排序 267
6.2.6嵌套网格 268
6.3 Less和mixin 269
6.3.1 Less简介 269
6.3.2 Less的两种用法 270
6.3.3 Less的变量和运算符 274
6.3.4 mixin 274
6.3.5内嵌规则 275
6.3.6 Bootstrap网格系统的变量和mixin 276
6.4 Bootstrap排版相关样式 278
6.4.1标题元素和样式 278
6.4.2段落 279
6.4.3增强的HTML元素 280
6.4.4对齐 282
6.4.5改变大小写 283
6.4.6列表 283
6.5表格相关样式 286
6.5.1基础表格 286
6.5.2条纹表格 287
6.5.3边框表格 287
6.5.4鼠标高亮 288
6.5.5紧凑型表格 289
6.5.6响应式表格 289
6.5.7表格行状态 290
6.6 图片和图标 291
6.6.1图片相关样式 291
6.6.2图标 293
6.7 辅助样式 294
6.7.1情境背景色 294
6.7.2情境文本颜色 295
6.7.3关闭按钮和三角箭头 295
6.7.4快速浮动 296
6.7.5显示或隐藏内容 296
6.7.6屏幕阅读器和键盘导航 297
6.7.7图片替换 297
6.8响应式布局相关样式 297
6.8.1显示/隐藏相关样式 298
6.8.2打印相关样式 299
6.9表单相关样式 299
6.9.1基础表单 299
6.9.2行内表单 300
6.9.3水平表单 302
6.9.4多选框和单选框 303
6.9.5表单控件的大小 305
6.9.6静态控件 307
6.9.7表单控件的状态 309
6.9.8帮助文本 309
6.9.9校验状态 310
6.9.10校验状态的图标 311
6.10本章小结 313
第7章 Bootstrap内置组件 314
7.1按钮 315
7.1.1按钮大小 316
7.1.2按钮状态 317
7.2下拉菜单 319
7.2.1对齐 321
7.2.2禁用菜单项 322
7.2.3按钮式下拉菜单 323
7.2.4分裂式按钮下拉菜单 324
7.2.5大小 326
7.3按钮组 327
7.3.1基本按钮组 327
7.3.2工具栏 328
7.3.3控制按钮组的大小 329
7.3.4按钮组嵌套下拉菜单 329
7.3.5两端对齐的按钮组 331
7.4输入框组 332
7.4.1基本输入框组 332
7.4.2控制输入框组的大小 334
7.4.3单选框或多选框作为附加元素 335
7.4.4按钮式下拉菜单作为附加元素 336
7.4.5多按钮 337
7.5导航 338
7.5.1简单导航的基础样式 338
7.5.2两端对齐 340
7.5.3嵌套下拉菜单 340
7.5.4路径导航 341
7.5.5基础导航条 342
7.5.6导航条中的品牌图标 344
7.5.7导航条中的按钮 344
7.5.8导航条中的表单 345
7.5.9导航条中的文本和链接 346
7.5.10导航条中的组件的排列方式 347
7.5.11设置导航条的位置 347
7.5.12响应式导航条 349
7.5.13分页导航 351
7.5.14控制分页导航的大小 352
7.5.15 翻页导航 352
7.6标签和徽章 353
7.6.1标签 354
7.6.2徽章 355
7.7 面板 355
7.7.1面板的基础结构 355
7.7.2面板嵌套表格 358
7.7.3面板嵌套列表组 359
7.8 巨幕、页头和Well 361
7.8.1巨幕 361
7.8.2页头 362
7.8.3 well 362
7.9 缩略图 363
7.10警告框 365
7.10.1警告框基础 365
7.10.2警告框中的链接 367
7.11进度条 367
7.11.1各种样式的进度条 367
7.11.2带进度值的进度条 369
7.11.3动画效果 370
7.11.4多进度效果 371
7.12媒体对象 372
7.12.1媒体对象的基本组成 372
7.12.2对齐方式 374
7.12.3嵌套媒体对象 375
7.12.4媒体对象列表 376
7.13列表组 377
7.13.1列表组基础 378
7.13.2链接列表组 379
7.13.3按钮列表组 379
7.13.4列表项的状态 380
7.13.5定制内容 381
7.14本章小结 381
第8章 Bootstrap的Js插件 382
8.1插件库概述 383
8.1.1使用插件的两种方式 383
8.1.2解决命名冲突 384
8.2对话框 384
8.2.1静态对话框 384
8.2.2使用data-*属性弹出对话框 387
8.2.3使用Js弹出对话框 388
8.2.4对话框事件 389
8.2.5基于事件源改变对话框内容 390
8.3下拉菜单 392
8.3.1使用data-*属性触发下拉菜单 392
8.3.2使用JS触发下拉菜单 393
8.3.3下拉菜单事件 394
8.4滚动监听 395
8.4.1通过data-*属性实现滚动监听 395
8.4.2使用JS实现滚动监听 397
8.5标签页 398
8.5.1静态标签页 398
8.5.2使用data-*属性切换标签页 399
8.5.3使用JS切换标签页 401
8.5.4胶囊式标签页 402
8.5.5标签页事件 403
8.6工具提示 404
8.6.1使用data-*属性和JS触发工具提示 405
8.6.2工具提示支持的属性 406
8.6.3工具提示的事件 407
8.7弹出框 408
8.7.1使用data-*属性和JS触发弹出框 409
8.7.2焦点触发的弹出框 411
8.7.3弹出框支持的属性 411
8.7.4弹出框的事件 412
8.8警告框 412
8.8.1使用data-*属性关闭警告框 412
8.8.2使用Js关闭警告框 413
8.8.3警告框事件 413
8.9按钮 414
8.9.1切换按钮状态 414
8.9.2单选按钮或多选按钮 414
8.9.3使用Js方法改变按钮文本 416
8.10折叠插件 416
8.10.1简单折叠效果 416
8.10.2手风琴效果 417
8.10.3使用Js触发折叠元素 419
8.10.4折叠插件的相关事件 420
8.11轮播图 420
8.11.1静态轮播图 420
8.11.2通过data-*属性激活轮播图 422
8.11.3通过Js触发轮播图 424
8.11.4轮播图事件 425
8.12本章小结 426
第9章 Angular+Bootstrap整合开发:图书管理系统 427
9.1总体说明和概要设计 428
9.1.1系统的总体架构设计 428
9.1.2数据库设计 429
9.2实现Hibemate持久化类 430
9.2.1设计Domain Object 430
9.2.2实现Domain Object 431
9.3 DAO层实现 435
9.3.1 DAO的基础配置 435
9.3.2实现DAO组件 436
9.3.3部署DAO组件 437
9.4业务逻辑层实现 438
9.4.1设计业务逻辑组件 439
9.4.2依赖注入DAO组件 441
9.4.3业务逻辑组件的异常处理 441
9.4.4实现业务逻辑组件 442
9.4.5事务管理 443
9.4.6配置业务层组件 444
9.5前端整合开发 445
9.5.1定义AngularJS路由 445
9.5.2 Spring MVC控制器的异常处理 447
9.5.3管理图书种类 447
9.5.4修改图书种类 451
9.5.5管理图书 453
9.5.6 修改图书 457
9.5.7图书入库 459
9.5.8 销售图书 465
9.6 本章小结 470
第10章 jQuery+Bootstrap整合开发:电子拍卖系统 471
10.1总体说明和概要设计 472
10.1.1系统的总体架构设计 472
10.1.2数据库设计 473
10.2实现Hibemate持久化类 474
10.2.1设计Domain Object 474
10.2.2实现Domain Object 475
10.3 DAO层实现 479
10.3.1 DAO的基础配置 480
10.3.2实现DAO组件 481
10.3.3部署DAO组件 484
10.4业务逻辑层实现 485
10.4.1设计业务逻辑组件 485
10.4.2依赖注入DAO组件 487
10.4.3业务逻辑组件的异常处理 488
10.4.4处理用户竞价 489
10.4.5判断拍卖物品状态 491
10.4.6事务管理 492
10.4.7配置业务层组件 493
10.5开发前端JSON接口 494
10.5.1初始化Spring容器 494
10.5.2开发Spring MVC控制器 496
10.5.3处理前端权限控制 498
10.6 前端整合开发 500
10.6.1定义系统首页 500
10.6.2浏览所有流拍物品 502
10.6.3处理用户登录 503
10.6.4管理物品 508
10.6.5管理物品种类 513
10.6.6查看竞得物品 516
10.6.7查看自己的竞价记录 518
10.6.8浏览拍卖物品 519
10.6.9参与竞价 522
10.7本章小结 526