第1章 Web项目的快速实现 1
1.1 手把手带你搭建开发环境 2
1.1.1 配置JDK 2
1.1.2 选择IDE 3
1.1.3 配置Maven 3
1.1.4 配置Tomcat 5
1.2 创建你的第一个Web项目 6
1.2.1 从GitHub上获取原型项目 7
1.2.2 导入Maven4Web项目到Eclipse工作库 8
1.2.3 运行Maven4Web 10
1.3 分析你的第一个Web项目 11
1.3.1 pom.xml 12
1.3.2 web.xml 15
1.3.3 context-dispatcher.xml 19
1.3.4 IndexController.java 21
1.3.5 index.jsp 22
1.4 Web项目的调试 23
1.4.1 客户端调试 23
1.4.2 服务器端调试 30
1.5 小结 31
第2章 锋利的jQuery 33
2.1 jQuery简介 33
2.2 编写第一行jQuery代码 36
2.2.1 准备jQuery程序库 36
2.2.2 编写jQuery代码 38
2.2.3 JS库文件管理 42
2.2.4 EL表达式 43
2.2.5 JSP标准标签库 45
2.3 jQuery选择器 47
2.3.1 基本选择器 47
2.3.2 过滤选择器 47
2.3.3 选择器组 48
2.4 jQuery中的DOM操作 48
2.4.1 查找节点 48
2.4.2 遍历节点 49
2.4.3 创建并插入节点 52
2.4.4 删除节点 53
2.5 jQuery的getter和setter 54
2.5.1 获取和设置HTML属性 55
2.5.2 获取和设置Form表单域的值 62
2.5.3 获取和设置HTML元素内容 66
2.5.4 获取和设置元素数据 68
2.6 jQuery中的Ajax 71
2.6.1 jQuery.ajax()函数 71
2.6.2 Ajax全局事件 72
2.6.3 中文乱码 76
2.7 小结 77
第3章 优雅的 Bootstrap 79
3.1 你好啊,Bootstrap 79
3.2 粘页脚,你必须得学会的简单技能 81
3.3 响应式栅格系统,行业趋势所向 86
3.3.1 栅格系统的起源 86
3.3.2 栅格系统的基本用法 87
3.3.3 列偏移和列嵌套 91
3.4 Bootstrap常用的CSS样式 93
3.4.1 排版 93
3.4.2 表格 95
3.4.3 表单 97
3.4.4 按钮 99
3.4.5 图像 100
3.4.6 浮动 101
3.5 那些锦上添花的图标字体库 102
3.5.1 Glyphicon Halflings 102
3.5.2 Font Awesome 103
3.5.3 iconfont 107
3.5.4 综合应用 109
3.6 变魔术一样的导航条 110
3.6.1 基础导航条 110
3.6.2 带有表单的导航条 111
3.6.3 响应式导航条 112
3.6.4 顶部固定的导航条 115
3.6.5 滚动时隐藏导航条 119
3.6.6 更多动画效果 123
3.7 小结 125
第4章 便捷的HTML扩展 127
4.1 什么是HTML扩展? 127
4.1.1 HTML是什么? 127
4.1.2 为什么要进行HTML扩展 129
4.1.3 编写HTML扩展的jQuery插件 130
4.2 Lazy Load——图像延迟加载 132
4.2.1 图像延迟加载 133
4.2.2 Lazy Load的HTML扩展 134
4.2.3 Lazy Load的更多参数 135
4.2.4 为什么不选择2.x版的Lazy Load 138
4.3 iCheck——超级复选框和单选按钮 139
4.3.1 复选框和单选按钮 139
4.3.2 iCheck的自我介绍 139
4.3.3 iCheck的基本应用步骤 139
4.3.4 iCheck的皮肤式样 143
4.3.5 iCheck的监听事件 146
4.3.6 iCheck改变复选框/单选按钮状态 146
4.3.7 iCheck的HTML扩展 147
4.4 Switch——Bootstrap的开关组件 150
4.4.1 Switch的自我介绍 150
4.4.2 Switch的基本应用步骤 150
4.4.3 Switch的常用属性 154
4.4.4 Switch的监听事件 155
4.4.5 Switch其他功能 156
4.4.6 Switch的HTML扩展 156
4.5 Datetime Picker——Bootstrap日期时间选择器 158
4.5.1 Datetime Picker的自我介绍 158
4.5.2 Datetime Picker的基本应用步骤 158
4.5.3 Datetime Picker的常用属性 160
4.5.4 Datetime Picker的HTML扩展 162
4.5.5 请求参数注解@RequestParam 163
4.6 DateRange Picker——Bootstrap日期范围选择器 164
4.6.1 DateRange Picker的自我介绍 164
4.6.2 DateRange Picker的基本应用步骤 164
4.6.3 DateRange Picker的常用属性 165
4.6.4 DateRange Picker的HTML扩展 167
4.6.5 更完善的DateRange Picker 168
4.7 Tags Input——Bootstrap风格的标签输入组件 171
4.7.1 Tags Input的自我介绍 171
4.7.2 Tags Input的基本应用 171
4.7.3 Tags Select 172
4.7.4 Tags Input的常用属性 173
4.7.5 Tags Input的HTML扩展 173
4.8 Star Rating——简单而强大的星级评分插件 175
4.8.1 Star Rating的自我介绍 175
4.8.2 Star Rating的基本应用 176
4.8.3 Star Rating的常用属性 176
4.8.4 Star Rating的HTML扩展 178
4.9 Layer——更友好的Web弹层组件 179
4.9.1 Layer的自我介绍 179
4.9.2 Layer的基本应用步骤 180
4.9.3 Layer的基础参数 181
4.9.4 Layer常用的回调函数 184
4.9.5 Layer的常用方法 185
4.9.6 为Layer定制常用的全局函数 187
4.10 Magnific Popup——一款真正的响应式灯箱插件 189
4.10.1 Magnific Popup的自我介绍 189
4.10.2 Magnific Popup的基本应用步骤 191
4.10.3 Magnific Popup的初始化方式 193
4.10.4 Magnific Popup的弹窗类型 194
4.10.5 Magnific Popup的公用选项 201
4.10.6 Magnific Popup的Gallery选项 204
4.10.7 Magnific Popup常用的回调函数 205
4.10.8 Magnific Popup常用的公共方法 206
4.10.9 Magnific Popup常用的公共属性 207
4.10.10 Magnific Popup的HTML扩展 207
4.11 小结 210
第5章 不可或缺的数据库 212
5.1 MySQL——关系型数据库 212
5.1.1 MySQIL简介 212
5.1.2 安装MySQL 213
5.1.3 数据库管理工具 216
5.1.4 创建数据库表 217
5.2 MyBatis——数据库持久层框架 219
5.2.1 MyBatis简介 219
5.2.2 基于XML映射的MyBatis 220
5.2.3 Mapper接口 228
5.3 Druid——数据库连接池 229
5.3.1 Druid简介 229
5.3.2 使用Druid 229
5.3.3 配置LogFilter 234
5.3.4 为数据库密码提供加密功能 236
5.4 小结 238
第6章 多彩的AdminLTE 240
6.1 初识AdminLTE 240
6.1.1 AdminLTE简介 240
6.1.2 AdminLTE的优点 241
6.1.3 AdminLTE初次探索 242
6.2 SiteMesh——网页布局和装饰的集成框架 245
6.2.1 SiteMesh简介 245
6.2.2 SiteMesh的基本应用 246
6.2.3 SiteMesh详细配置 249
6.2.4 小结 250
6.3 Chart.js——简单而灵活的图表库 251
6.3.1 关于Chart.js 251
6.3.2 Chart.js的基本应用 252
6.3.3 Chart.js的常用配置项(options) 255
6.3.4 Chart.js的不同类型图表 267
6.3.5 Chart.js重要的组成部分 277
6.3.6 Chart.js的那些重要方法 286
6.3.7 Chart.js常用的监听事件 286
6.3.8 为Chart.js锦上添花 287
6.3.9 通过Ajax从服务器端获取数据 289
6.4 Select2——支持搜索、标记、远程数据和无限滚动的下拉框 292
6.4.1 Select2简介 292
6.4.2 Select2的基本应用 293
6.4.3 Select2配置项概览 296
6.4.4 Select2数据源 298
6.4.5 Select2占位符 306
6.4.6 Select2的JavaScript编程步骤 306
6.4.7 Select2注意事项 308
6.5 Bootstrap-Treeview——一款非常酷的分层树结构插件 308
6.5.1 Boot strap-Treeview简介 308
6.5.2 Boot strap-Treeview基本应用 309
6.5.3 Boot strap-Treeview数据结构 310
6.5.4 Boot strap-Treeview常用配置项 312
6.5.5 Boot strap-Treeview常用方法 314
6.5.6 Bootstrap- Treeview的常用监听事件 320
6.5.7 关于Boots trap-Treeview节点勾选 321
6.5.8 Bootstrap-Treeview异步加载 325
6.5.9 Boot strap-Treeview节点数据提交 328
6.6 小结 330
第7章 大有可为的Form表单 332
7.1 原来你是这样的Form表单 332
7.2 Boot strapValidator——非常好用的表单验证插件 334
7.2.1 Boot strapValidator的前世今生 334
7.2.2 Boot strapValidator的基本应用 334
7.2.3 Boot strapValidator常用的验证器 337
7.2.4 BootstrapValidator的常用方法 345
7.2.5 普通表单提交时的遗憾 352
7.2.6 使用Ajax提交表单 354
7.3 Validform——一行代码搞定整站的表单验证 358
7.3.1 Validform,大声喊出你的口号 358
7.3.2 Validform的基本应用 358
7.3.3 Validform常用的附加属性 360
7.3.4 Validform常用的初始化参数 361
7.3.5 使用Ajax提交表单 362
7.4 验证码——防止恶意捣乱的神器 364
7.4.1 关于验证码 364
7.4.2 集成验证码 364
7.5 Geetest——更可靠的安全验证工具 368
7.5.1 关于Geetest 368
7.5.2 注册极验账号 369
7.5.3 行为验证的服务器端SDK 369
7.5.4 集成行为验证的客户端SDK 372
7.5.5 运行实例 377
7.6 Form——不再令人痛苦的文件上传 378
7.6.1 在表单中添加文件上传域 378
7.6.2 使用Ajax提交Form表单 380
7.7 Dropify——图片拖拽和预览插件 394
7.7.1 关于Dropify 394
7.7.2 Dropify的基本应用 394
7.7.3 Dropify常用的配置项 396
7.7.4 Dropify常用的监听事件 399
7.7.5 使用Ajax提交Dropify选择的图片 400
7.8 Bootstrap FileInput——增强版的HTML5文件输入框 402
7.8.1 Bootstrap FileInput到底有多优秀? 402
7.8.2 Bootstrap FileInput的基本应用 403
7.8.3 Bootstrap FileInput的使用模式 404
7.8.4 Bootstrap FileInput的常用配置项 407
7.8.5 Bootstrap FileInput的扩展应用实例 428
7.9 Summernote——超级简洁的富文本编辑器 434
7.9.1 为什么选择Summernote 434
7.9.2 Summernote的基本应用 435
7.9.3 Summernote的常用配置项 437
7.9.4 Summernote的常用方法 440
7.9.5 Summernote的常用监听事件 441
7.9.6 Summernote的扩展应用实例 446
7.10 筛选结果的查询类表单 451
7.11 小结 454