第1篇Java Web基础篇 2
第1章Servlet开发 2
1.1用Eclipse开发第一个Servlet程序 2
1.1.1建立Web工程 2
1.1.2编写Servlet程序 3
1.1.3运行Servlet 4
1.1.4调试Servlet 5
1.2手工编写和发布Web程序 5
1.2.1编写web.xml 6
1.2.2使用JAR进行打包 8
1.2.3发布到指定的目录 8
1.3配置数据库连接池 9
1.4 Servlet的原理和实现 12
1.4.1 Servlet程序的层次关系 12
1.4.2 Servlet的编写过程 13
1.4.3 Servlet的执行过程 15
1.4.4显示服务端图像 17
1.5使用HttpServletResponse产生响应消息 19
1.5.1产生状态响应码 20
1.5.2设置响应消息头 20
1.5.3验证响应消息头设置情况 22
1.5.4产生响应正文 24
1.5.5用sendRedirect方法实现请求重定向 25
1.5.6用include方法实现资源包含 25
1.5.7用forward方法实现请求转发 28
1.6使用 HttpServletRequest获得请求消息 30
1.6.1获取请求行消息 30
1.6.2获取网络连接消息 31
1.6.3获取请求头消息 31
1.7处理Cookie 32
1.7.1 Cookie类 32
1.7.2 Cookie的功能演示 33
1.8处理Session 36
1.8.1 HttpSession接口中的方法 36
1.8.2 HttpServletRequest接口中的Session方法 38
1.8.3通过Cookie跟踪Session 38
1.8.4通过重写URL跟踪Session 40
1.9本章小结 42
第2章JSP入门 43
2.1用Eclipse开发第一个JSP程序 43
2.1.1建立一个 JSP程序 44
2.1.2调试JSP程序 45
2.1.3改变JSP的访问路径 45
2.1.4改变JSP的扩展名 46
2.1.5手动发布JSP 46
2.2 JSP运行原理 47
2.2.1 Tomcat如何处理JSP页 47
2.2.2分析由JSP生成的Servlet代码 49
2.3 JSP基本语法 53
2.3.1 JSP表达式 53
2.3.2在JSP中嵌入Java代码 53
2.3.3 JSP声明 55
2.3.4 JSP表达式语言(EL) 57
2.3.5 JSP代码中的注释 61
2.4 JSP指令 62
2.4.1 JSP指令简介 62
2.4.2 page指令 63
2.4.3 include指令 67
2.5内置对象 68
2.5.1 out对象 69
2.5.2 pageContext对象 70
2.5.3其他JSP内置对象 71
2.6 JSP标签 73
2.6.1 <jsp:include>标签 73
2.6.2 <jsp:forward>标签 75
2.6.3 <jsp:param>标签 75
2.6.4 <jsp:useBean>标签 76
2.6.5 <jsp:setProperty>标签 78
2.6.6 <jsp:getProperty>标签 80
2.7本章小结 81
第3章 表达式语言 82
3.1 EL概述 82
3.2 EL入门 83
3.2.1在 JSP页面中使用EL表达式 83
3.2.2在标签中使用EL表达式 83
3.2.3在web.xml中禁用EL表达式 83
3.3 EL的内置对象 84
3.3.1内置对象与域对象 84
3.3.2 pageContext对象 85
3.3.3 param和paramValues对象 86
3.3.4 header和headerValues对象 87
3.3.5 cookie对象 87
3.3.6 initParam对象 88
3.4 EL的基本语法 88
3.4.1标识符 89
3.4.2保留字 89
3.4.3常量 89
3.4.4变量 90
3.4.5枚举类型 91
3.5 EL中的运算符 92
3.5.1方括号和点运算符 92
3.5.2算术运算符 94
3.5.3关系运算符 94
3.5.4逻辑运算符 95
3.5.5 empty运算符 96
3.5.6条件运算符 96
3.5.7圆括号运算符 96
3.5.8运算符的优先级 97
3.6 EL自定义函数 97
3.6.1 EL自定义函数简介 97
3.6.2编写EL自定义函数的静态Java方法 97
3.6.3配置EL自定义函数 98
3.6.4使用EL自定义函数 99
3.7本章小结 100
第4章 国际化 101
4.1国际化与本地化概述 101
4.2与国际化相关的Java类 103
4.2.1 Locale类 103
4.2.2获得JD K支持的所有本地信息 107
4.2.3 ResourceBundle类 108
4.2.4处理中文资源文件的工具 110
4.2.5获得国际化资源信息 112
4.2.6从Java类中获得国际化资源信息 113
4.2.7 DateFormat类 114
4.2.8 SimpleDateFormat类 116
4.2.9格式化Date对象 117
4.2.10解析日期/时间字符串 118
4.2.11 NumberFormat类 119
4.2.12 DecimalFormat类 121
4.2.13格式化数值 122
4.2.14解析表示数值的字符串 124
4.2.15MessageFormat类 124
4.2.16格式化带占位符的国际化资源信息 127
4.2.17动态设置占位符的数据类型和显示模式 128
4.3开发国际化的Web程序 130
4.3.1 Web程序国际化的原理 131
4.3.2编写国际化的Web程序 133
4.4本章小结 135
第5章JSp标准标签库(一) 136
5.1标签库的组成部分 136
5.2建立JSTL的开发环境 136
5.3核心标签库 137
5.3.1 <c:out>标签 138
5.3.2 <c:set>标签 140
5.3.3 <c:remove>标签 142
5.3.4 <c:catch>标签 143
5.3.5 <c:if>标签 144
5.3.6 <c:choose>、 <c:when>和<c:otherwise>标签 145
5.3.7 <c:forEach>标签 146
5.3.8 <c:forTokens>标签 156
5.3.9 <c:param>标签 158
5.3.10 <c:url>标签 159
5.3.11 <c:redirect>标签 161
5.3.12 <c:import>标签 162
5.4国际化标签库 164
5.4.1 <fmt:setLocale>标签 164
5.4.2 <fmt:bundle>标签 165
5.4.3 <fmt:setBundle>标签 167
5.4.4 <fmt:message>标签 167
5.4.5 <fmt:param>标签 169
5.4.6 <fmt:requestEncoding>标签 169
5.4.7 <fmt:timeZone>标签 171
5.4.8 <fmt:setTimeZone>标签 171
5.4.9 <fmt:formatNumber>标签 172
5.4.10 <fmt:parseNumber>标签 175
5.4.11 <fmt:formatDate>标签 176
5.4.12 <fmt:parseDate>标签 178
5.5本章小结 180
第6章JSP标准标签库(二) 181
6.1数据库标签库 181
6.1.1 <sql:setDataSource>标签 182
6.1.2 <sql:query>标签 183
6.1.3 <sql:update>标签 185
6.1.4 <sql: transaction>标签 188
6.1.5 <sql:param>标签 190
6.1.6 <sql:dateParam>标签 190
6.2 XML标签库 191
6.2.1 <x:parse>标签 192
6.2.2使用Filter过滤XML文档 194
6.2.3 <x:out>标签 196
6.2.4 < x:set>标签 197
6.2.5 XPath表达式的条件判断 197
6.2.6 <x:if>标签 198
6.2.7 <x:choose>、 <x:when>和<x:otherwise>标签 199
6.2.8 <x:forEach>标签 199
6.2.9 <x:transform>标签 201
6.2.10 <x:param>标签 204
6.3 JSTL自定义函数 205
6.3.1 fn:contains函数 205
6.3.2 fn: containsIgnoreCase函数 205
6.3.3 fn:startsWith函数 206
6.3.4 fn:endsWith函数 206
6.3.5 fn:escapeXml函数 206
6.3.6 fn:indexOf函数 207
6.3.7 fn:split函数 207
6.3.8 fn:join函数 207
6.3.9 fn:length函数 207
6.3.10 fn:replace函数 208
6.3.11 fn:substring函数 208
6.3.12 fn:substringAfter函数 209
6.3.13 fn:substringBefore函数 209
6.3.14 fn:toLowerCase函数 210
6.3.15fn:toUpperCase函数 210
6.3.16 fn:trim函数 210
6.4本章小结 210
第7章 自定义标签的开发与应用 211
7.1自定义标签基础 211
7.1.1编写输出随机数的标签 211
7.1.2自定义标签能做什么 215
7.1.3自定义标签API 216
7.2实现基本的自定义标签 219
7.2.1 Tag接口 219
7.2.2标签类中方法的调用顺序 221
7.2.3控制是否执行标签体 223
7.2.4控制是否执行标签后面的内容 224
7.2.5限定自定义标签的父标签 226
7.3自定义标签的属性 228
7.3.1定义标签属性 228
7.3.2编写数学运算标签 230
7.3.3动态属性值 232
7.3.4标签的动态属性 234
7.3.5使用动态属性生成不同风格的列表框 235
7.4迭代标签 238
7.4.1 IterationTag接口 238
7.4.2编写迭代集合的标签 239
7.5处理标签体内容 243
7.5.1 BodyTag接口 243
7.5.2 BodyContent类 245
7.5.3编写将URL转换成a元素的标签 245
7.5.4编写将文本内容转换成表格的标签 247
7.6标签体的类型 254
7.7在自定义标签中使用Java变量 255
7.7.1在TLD文件中定义Java变量 255
7.7.2 TLD文件中的Java变量详解 256
7.7.3 JSP引擎如何创建声明和使用Java变量的语句 258
7.7.4使用TagExtraInfo类定义Java变量 260
7.7.5编写使用Base64格式编码和解码的标签 261
7.8本章小结 266
第2篇SSH整合技术篇 268
第8章Struts 2入门 268
8.1 Struts 2简介 268
8.1.1 Struts 2的MVC模式 268
8.1.2 Struts 2的下载和安装 269
8.2编写一个简单的Struts 2程序 270
8.3模型驱动 274
8.4 Struts 2中的配置文件 277
8.4.1 web.xml文件的配置 277
8.4.2 struts.xml文件的配置 278
8.4.3 struts.properties文件的配置 281
8.4.4使用DTD 284
8.5 Struts 2的配置标签 287
8.5.1 <bean>标签 287
8.5.2 <constant>标签 289
8.5.3 <include>标签 290
8.5.4 <package>标签 290
8.5.5 struts.xml文件中的命名空间 292
8.5.6配置拦截器 293
8.6本章小结 294
第9章Struts 2中的常用技术 295
9.1常用类和接口 295
9.1.1 getter和setter方法 295
9.1.2 Action接口 297
9.1.3 ActionSupport类 298
9.1.4通过ActionContext访问 Servlet API 299
9.1.5通过感知拦截器访问Servlet API 305
9.1.6动态方法处理多个提交请求 308
9.1.7通过method属性处理多个提交请求 309
9.1.8通配符 311
9.2结果(Result) 314
9.2.1配置Result 314
9.2.2 Result类型 316
9.2.3用通配符指定结果 318
9.2.4用请求参数指定结果 319
9.3模型驱动 320
9.3.1 ModelDriven概述 320
9.3.2使用模型驱动改进登录程序 322
9.4异常处理 325
9.4.1处理异常的原理 325
9.4.2实例:登录系统的异常处理 326
9.5本章小结 329
第10章Struts 2的类型转换 330
10.1类型转换简介 330
10.1.1客户端和服务端之间的数据转换 330
10.1.2传统的类型转换 331
10.2使用Struts 2类型转换器 335
10.2.1内置类型转换器 335
10.2.2 OGNL类型转换器 339
10.2.3配置全局类型转换器 343
10.2.4 Struts类型转换器 346
10.2.5数组类型转换器 348
10.2.6集合类型转换器 351
10.3处理Collection和Map映射 355
10.3.1指定集合元素的类型 355
10.3.2 Set和索引属性 357
10.4本章小结 359
第11章 拦截器 360
11.1拦截器基础 360
11.1.1拦截器简介 360
11.1.2配置拦截器 360
11.1.3使用拦截器 361
11.1.4设置拦截器参数 362
11.1.5默认拦截器 362
11.2 Struts 2的内置拦截器 363
11.2.1内置拦截器简介 363
11.2.2 alias拦截器 365
11.2.3 exception拦截器 366
11.3自定义拦截器 367
11.3.1编写拦截器类 367
11.3.2配置自定义拦截器 369
11.4拦截器的高级技术 371
11.4.1过滤指定的方法 371
11.4.2拦截器执行顺序 374
11.4.3拦截器结果监听器 375
11.5本章小结 378
第12章 输入校验 379
12.1使用validate方法进行数据校验 379
12.1.1 validate方法校验数据的原理 379
12.1.2用validate方法进行输入校验 381
12.1.3使用validateXxx方法进行输入校验 384
12.1.4 Struts 2的输入校验流程 385
12.2使用Validation框架进行数据校验 385
12.2.1使用Validation框架进行服务端校验 386
12.2.2字段和非字段校验器 390
12.2.3国际化错误提示信息 392
12.2.4校验文件的命名规则 394
12.3 validation框架的内置校验器 396
12.3.1 conversion校验器 396
12.3.2 date校验器 396
12.3.3 double校验器 397
12.3.4 email校验器 397
12.3.5 expression校验器 397
12.3.6 fieldexpression校验器 398
12.3.7 int校验器 398
12.3.8 regex校验器 398
12.3.9 required校验器 399
12.3.10 requiredstring校验器 399
12.3.11 stringlength校验器 399
12.3.12 url校验器 400
12.4本章小结 400
第13章Strtus 2的常用标签 401
13.1控制标签 401
13.1.1 if/elseif/else标签 401
13.1.2 iterator标签 404
13.1.3 append标签 408
13.2数据标签 409
13.2.1 action标签 409
13.2.2 bean标签 412
13.2.3 include标签 414
13.2.4 param标签 415
13.2.5 property标签 415
13.2.6 set标签 416
13.3表单标签 418
13.3.1 form、 submit和reset标签 418
13.3.2 checkboxlist标签 419
13.3.3 combobox标签 422
13.3.4 select标签 423
13.3.5 radio标签 424
13.4本章小结 425
第14章Hibernate入门 426
14.1 Hibernate概述 426
14.2编写第一个Hibernate程序 426
14.2.1开发Hibernate程序的步骤 427
14.2.2建立数据表 427
14.2.3建立Hibernate配置文件 427
14.2.4编写会话工厂类 428
14.2.5编写实体Bean 431
14.2.6建立映射文件 432
14.2.7编写Action类 432
14.2.8编写JSP页面 434
14.3配置Hibernate 435
14.3.1用XML文件配置Hibernate 435
14.3.2用属性文件配置Hibernate 438
14.3.3用编程的方式配置Hibernate 438
14.3.4 Hibernate框架的配置属性 439
14.3.5 SQL方言 442
14.3.6使用JNDI数据源 443
14.3.7配置映射文件 444
14.4本章小结 444
第15章Hibernate会话与关系对象映射 445
15.1会话基础 445
15.1.1对象持久化 445
15.1.2持久化对象的关系 446
15.1.3装载持久化对象 447
15.1.4更新持久化对象 449
15.1.5删除持久化对象 449
15.2建立关系对象映射 450
15.2.1映射主键 450
15.2.2映射普通属性 450
15.2.3组件映射 451
15.2.4多对一单向关联关系 451
15.2.5一对多的双向关联关系 452
15.2.6基于外键的一对一的关系映射 453
15.2.7基于主键的一对一的关系映射 453
15.3本章小结 458
第16章Hibernate的高级技术 459
16.1标准查询 459
16.1.1约束条件 459
16.1.2分页显示数据 460
16.1.3获得一个持久化对象 462
16.1.4使用Order类对数据进行排序 462
16.1.5关联多个实体Bean 463
16.1.6聚合与分组 464
16.1.7使用QBE 466
16.2 HQL详解 467
16.2.1 HQL入门 468
16.2.2 from子句 468
16.2.3 select子句 470
16.2.4 where子句 471
16.2.5命名参数 472
16.2.6 分页显示数据 473
16.2.7排序和分组 473
16.2.8关联查询 474
16.2.9聚合函数 476
16.2.10 update和delete语句 477
16.2.11 insert语句 478
16.2.12命名查询 478
16.3本章小结 479
第17章整合Struts 2、 Spring和Hibernate 480
17.1整合Struts 2与Hibernate 480
17.2 Spring概述 483
17.3 Spring开发入门 484
17.3.1 Spring的下载和安装 484
17.3.2 IoC模式概述 484
17.3.3关于Spring的一个简单的例子 486
17.4整合Struts 2、 Spring和Hibernate 488
17.4.1装配数据访问层 488
17.4.2装配业务逻辑层 489
17.4.3使用Struts 2的Spring插件 490
17.5本章小结 491
第3篇ExtJS框架篇 494
第18章ExtJS入门 494
18.1 ExtJS基础 494
18.1.1下载和安装ExtJS 494
18.1.2编写第一个ExtJS程序 494
18.1.3 ExtJS的国际化 495
18.1.4查看ExtJS API 496
18.2 ExtJS的事件 496
18.2.1注册和删除事件 496
18.2.2 Observable类 498
18.3 ExtJS中的核心组件 500
18.3.1 Ext.Component组件 500
18.3.2 Ext.BoxComponent组件 503
18.3.3 Ext.Container组件 503
18.3.4 Ext.Button组件 504
18.3.5 Ext.Panel组件 505
18.3.6 Ext.Window组件 506
18.4本章小结 507
第19章ExtJS的常用组件 508
19.1对话框组件 508
19.1.1提醒对话框 508
19.1.2确认对话框 509
19.1.3输入对话框 509
19.1.4等待对话框 509
19.1.5进度对话框 510
19.1.6带图像的对话框 510
19.2表单组件 511
19.2.1 Ext.form.FormPanel组件 511
19.2.2 Ext.form.TextField组件 513
19.2.3 Ext.form.TextArea组件 514
19.2.4 Ext.form.DateField组件 514
19.2.5 Ext.form.TimeField组件 514
19.2.6 Ext.form.ComboBox组件 515
19.2.7 Ext.form.TriggerField组件 516
19.3布局组件 517
19.3.1 FormLayout组件 517
19.3.2 ColumnLayout组件 518
19.3.3 Ext.form.FieldSet组件 520
19.4本章小结 521
第20章 表格组件 522
20.1表格基础 522
20.1.1编写第一个表格程序 522
20.1.2设置表格的列宽度 525
20.1.3表格排序 525
20.1.4在表格中显示复选框 526
20.1.5显示行号 526
20.2表格分页 527
20.2.1为表格组件添加分页工具栏 527
20.2.2在表格组件的顶部显示分页工具栏 528
20.2.3滑动风格分页工具栏 529
20.2.4带进度条的分页工具栏 529
20.3编辑表格中的数据 530
20.3.1第一个可编辑的表格 530
20.3.2向表格添加新行 531
20.3.3保存数据 533
20.4本章小结 533
第21章TreePanel组件 534
21.1 TreePanel组件基础 534
21.1.1我们的第一棵树 534
21.1.2添加子结点 535
21.1.3读取服务端的JSON数据 536
21.1.4事件 538
21.1.5右键菜单 540
21.1.6显示结点文本 541
21.1.7将结点设置成超链接 541
21.1.8修改结点的文本 542
21.2拖放树结点 543
21.2.1结点拖放的位置 543
21.2.2向叶子结点追加子结点 544
21.2.3在树之间拖放结点 544
21.3本章小结 545
第22章ExtJS中的其他组件 546
22.1菜单组件 546
22.1.1基本的菜单 546
22.1.2下拉菜单 547
22.1.3多级菜单 549
22.1.4向菜单中添加分隔线 550
22.1.5多选和单选菜单 551
22.1.6日期和颜色菜单 553
22.2工具栏组件 554
22.2.1 Ext.Toolbar.Button组件 555
22.2.2 Ext.Toolbar.TextMenu组件 555
22.2.3 Ext.Toolbar.Spacer组件 555
22.2.4 Ext.Toolbar.Separator组件 556
22.2.5 Ext.SplitButton组件 556
22.2.6在工具栏上添加输入组件 557
22.3本章小结 557
第4篇 综合实例篇 560
第23章 网络硬盘 560
23.1系统功能描述 560
23.2数据库设计 560
23.3数据库访问 562
23.3.1配置数据源 562
23.3.2对数据进行增、删、改、查 562
23.3.3处理用户数据 565
23.3.4处理文件和目录 565
23.4主页面的实现 568
23.4.1建立主页面 568
23.4.2验证JSP页面的访问权限 570
23.4.3建立验证Servlet访问权限的Servlet 571
23.5新建文件夹 573
23.5.1建立新建文件夹页面 573
23.5.2显示模式窗口 574
23.5.3建立创建目录的Servlet 574
23.6上传文件 575
23.6.1建立上传文件页面 575
23.6.2建立上传文件Servlet 577
23.7下载文件和目录 580
23.7.1下载单个文件 580
23.7.2打包下载多个文件和目录 581
23.7.3通过AJAX技术发送下载请求 582
23.8删除文件和目录 584
23.9本章小结 586
第24章 数字魔法之读心术 587
24.1奇妙的数字游戏 587
24.2预定义数字块 588
24.3随机显示数字块中的数字 588
24.4猜猜选的是哪个数字 593
24.5本章小结 595
第25章 注册与登录系统 596
25.1系统概述 596
25.2数据库设计 596
25.3实现数据持久化和业务逻辑层 597
25.3.1编写User类 597
25.3.2编写DAOSupport类 598
25.3.3编写操作用户信息的DAO组件 599
25.3.4编写与用户相关的Service组件 599
25.4实现Action类与Web表现层组件 601
25.4.1编写ModelAction类 601
25.4.2用户注册 602
25.4.3用户登录 603
25.5本章小结 604
第26章 博客系统 605
26.1系统概述 605
26.2数据库设计 605
26.3数据持久层组件 606
26.3.1编写Blog类 607
26.3.2编写Reply类 609
26.4数据访问层组件 611
26.4.1编写操作Blog信息的DAO组件 611
26.4.2编写操作回复信息的DAO类 613
26.5业务逻辑层组件 614
26.5.1编写与Blog相关的Service组件 614
26.5.2编写与回复相关的Service组件 617
26.5.3编写ServiceManager类 619
26.6配置Spring 619
26.7 Web表现层组件 622
26.7.1实现博客系统的主页面 622
26.7.2发布与编辑Blog信息 624
26.7.3添加与显示回复信息 625
26.8本章小结 627
第27章 电子相册 628
27.1系统概述 628
27.2数据库设计 629
27.3数据持久层与访问层组件 630
27.3.1数据持久层组件:User类 630
27.3.2数据持久层组件:Album类 631
27.3.3数据持久层组件:Photo类 632
27.3.4数据访问层组件:UserDAO类 634
27.3.5数据访问层组件:AlbumDAO类 635
27.3.6数据访问层组件:PhotoDAO类 638
27.4实现业务逻辑层 641
27.4.1业务逻辑层组件:UserService类 641
27.4.2业务逻辑层组件:AlbumService类 642
27.4.3业务逻辑层组件:PhotoService类 643
27.5处理用户请求的Servlet 645
27.5.1 CommonServlet类 645
27.5.2创建相册:CreateAlbumServlet类 649
27.5.3删除相册:DeleteAlbumServlet类 650
27.5.4获得所有相册的信息:GetAlbumsServlet类 650
27.5.5获得指定相册的内容:GetAlbumServlet类 651
27.5.6上传照片:UploadPhotoServlet类 652
27.5.7删除照片:DeletePhotoServlet类 652
27.5.8浏览指定的照片:ViewPhotoServlet类 653
27.6 Web表现层 654
27.6.1用户登录页面:login.j sp 655
27.6.2用户注册页面:register.jsp 658
27.6.3电子相册的主页面:main.j sp 661
27.6.4建立相册的JSP页面:create_ albums.jsp 662
27.6.5更新相册属性的JSP页面:upload_albums.jsp 664
27.6.6显示相册中照片的JSP页面:view_album.jsp 664
27.6.7上传照片的JSP页面:upload_photo.jsp 667
27.7本章小结 668