第1篇 Web开发基础 3
第1章 Java Web应用开发概述 3
1.1程序开发体系结构 4
1.1.1 C/S体系结构介绍 4
1.1.2 B/S体系结构介绍 4
1.1.3两种体系结构的比较 5
1.2 Web应用程序的工作原理 5
1.3 Web应用技术 6
1.3.1客户端应用的技术 7
1.3.2服务器端应用的技术 9
1.4了解Java Web成功案例 10
1.5常用网上资源 11
1.5.1常用资源下载网 11
1.5.2技术社区 12
1.6小结 12
第2章 HTML与CSS网页开发基础 13
2.1 HTML标记语言 14
2.1.1创建第一个HTML文件 14
2.1.2 HTML文档结构 15
2.1.3 HTML常用标记 16
2.1.4表格标记 19
2.1.5 HTML表单标记 21
2.1.6超链接与图片标记 26
2.2 HTML5新增内容 28
2.2.1新增的元素 28
2.2.2新增的input元素类型 29
2.3 CSS样式表 30
2.3.1 CSS规则 30
2.3.2 CSS选择器 31
2.3.3在页面中包含CSS 33
2.4 CSS 3的新特征 35
2.4.1模块与模块化结构 35
2.4.2一个简单的CSS 3实例 36
2.5小结 38
2.6实践与练习 38
第3章 JavaScript脚本语言 39
3.1了解JavaScript 40
3.1.1什么是JavaScript 40
3.1.2 JavaScript的主要特点 40
3.2 JavaScript语言基础 41
3.2.1 JavaScript的语法 41
3.2.2 JavaScript中的关键字 42
3.2.3 JavaScript的数据类型 42
3.2.4变量的定义及使用 45
3.2.5运算符的应用 46
3.3流程控制语句 49
3.3.1 if条件语句 49
3.3.2 switch多分支语句 52
3.3.3 for循环语句 54
3.3.4 while循环语句 55
3.3.5 do…while循环语句 57
3.3.6 break与continue语句 58
3.4函数 59
3.4.1函数的定义 59
3.4.2函数的调用 60
3.5事件处理 61
3.5.1什么是事件处理程序 61
3.5.2 JavaScript常用事件 61
3.5.3事件处理程序的调用 62
3.6常用对象 63
3.6.1 Window对象 63
3.6.2 String对象 67
3.6.3 Date对象 71
3.7 DOM技术 73
3.7.1 DOM的分层结构 73
3.7.2遍历文档 74
3.7.3获取文档中的指定元素 76
3.7.4操作文档 77
3.8小结 79
3.9实践与练习 79
第4章 搭建开发环境 81
4.1 Java Web应用的开发环境概述 82
4.2 Tomcat的安装与配置 82
4.2.1下载Tomcat 82
4.2.2 Tomcat的目录结构 84
4.2.3修改Tomcat的默认端口 84
4.2.4部署Web应用 84
4.3 Eclipse的下载与使用 85
4.3.1 Eclipse的下载与安装 85
4.3.2启动Eclipse 87
4.3.3 Eclipse工作台 87
4.3.4使用Eclipse开发Web应用 88
4.4小结 93
4.5实践与练习 93
第2篇 JSP语言基础 97
第5章 JSP基本语法 97
5.1了解JSP页面 98
5.2指令标识 99
5.2.1 page指令 100
5.2.2 include指令 102
5.2.3 taglib指令 104
5.3脚本标识 104
5.3.1 JSP表达式 105
5.3.2声明标识 105
5.3.3代码片段 106
5.4 JSP注释 107
5.4.1 HTML中的注释 107
5.4.2带有JSP表达式的注释 108
5.4.3隐藏注释 110
5.4.4动态注释 111
5.5动作标识 111
5.5.1包含文件标识<jsp:include> 111
5.5.2请求转发标识<jsp:forward> 114
5.5.3传递参数标识<jsp:param> 116
5.6小结 116
5.7实践与练习 117
第6章 JSP内置对象 119
6.1 JSP内置对象的概述 120
6.2 request对象 120
6.2.1访问请求参数 120
6.2.2在作用域中管理属性 122
6.2.3获取cookie 123
6.2.4解决中文乱码 125
6.2.5获取客户端信息 126
6.2.6显示国际化信息 127
6.3 response对象 128
6.3.1重定向网页 128
6.3.2处理HTTP文件头 129
6.3.3设置输出缓冲 130
6.4 session对象 131
6.4.1创建及获取客户的会话 131
6.4.2从会话中移动指定的绑定对象 132
6.4.3销毁session 132
6.4.4会话超时的管理 132
6.4.5 session对象的应用 133
6.5 application对象 135
6.5.1访问应用程序初始化参数 135
6.5.2管理应用程序环境属性 136
6.6 out对象 136
6.6.1向客户端输出数据 137
6.6.2管理响应缓冲 138
6.7其他内置对象 138
6.7.1获取会话范围的pageContext对象 138
6.7.2读取web.xml配置信息的config对象 139
6.7.3应答或请求的page对象 139
6.7.4获取异常信息的exception对象 140
6.8小结 142
6.9实践与练习 142
第7章 JavaBean技术 143
7.1 JavaBean介绍 144
7.1.1 JavaBean概述 144
7.1.2 JavaBean种类 145
7.2 JavaBean的应用 148
7.2.1获取JavaBean属性信息 148
7.2.2对JavaBean属性赋值 150
7.2.3如何在JSP页面中应用JavaBean 151
7.3在JSP中应用JavaBean 154
7.3.1解决中文乱码的JavaBean 155
7.3.2在JSP页面中用来显示时间的JavaBean 158
7.3.3数组转换成字符串 160
7.4小结 164
7.5实践与练习 164
第8章 Servlet技术 165
8.1 Servlet基础 166
8.1.1 Servlet结构体系 166
8.1.2 Servlet技术特点 166
8.1.3 Servlet与JSP的区别 167
8.1.4 Servlet代码结构 168
8.2 Servlet API编程常用接口和类 169
8.2.1 Servlet接口 169
8.2.2 ServletConfig接口 170
8.2.3 HttpServletRequest接口 170
8.2.4 HttpServletResponse接口 171
8.2.5 GenericServlet类 171
8.2.6 HttpServlet类 172
8.3 Servlet开发 172
8.3.1 Servlet创建 172
8.3.2 Servlet配置 173
8.4小结 175
8.5实践与练习 175
第9章 过滤器和监听器 177
9.1 Servlet过滤器 178
9.1.1什么是过滤器 178
9.1.2过滤器核心对象 179
9.1.3过滤器创建与配置 180
9.1.4字符编码过滤器 183
9.2 Servlet监听器 188
9.2.1 Servlet监听器简介 188
9.2.2 Servlet监听器的原理 188
9.2.3 Servlet上下文监听 188
9.2.4 HTTP会话监听 189
9.2.5 Servlet请求监听 190
9.2.6 Servlet监听器统计在线人数 191
9.3 Servlet 3.0新特性 194
9.3.1新增注释 194
9.3.2对文件上传的支持 199
9.3.3异步处理 201
9.4小结 201
9.5实践与练习 202
第3篇 JSP高级内容 205
第10章 Java Web的数据库操作 205
10.1 JDBC技术 206
10.1.1 JDBC简介 206
10.1.2 JDBC连接数据库的过程 206
10.2 JDBC API 208
10.2.1 Connection接口 208
10.2.2 DriverManager类 209
10.2.3 Statement接口 210
10.2.4 PreparedStatement接口 211
10.2.5 ResultSet接口 212
10.3 JDBC操作数据库 213
10.3.1添加数据 213
10.3.2查询数据 216
10.3.3修改数据 220
10.3.4删除数据 222
10.3.5批处理 224
10.3.6调用存储过程 227
10.4 JDBC在Java Web中的应用 230
10.4.1开发模式 230
10.4.2分页查询 231
10.5小结 237
10.6实践与练习 237
第11章 EL(表达式语言) 239
11.1 EL(表达式语言)概述 240
11.1.1 EL的基本语法 240
11.1.2 EL的特点 240
11.2与低版本的环境兼容——禁用EL 241
11.2.1使用斜杠“\”符号 241
11.2.2使用page指令 241
11.2.3在web.xml文件中配置<el-ignored>元素 242
11.3保留的关键字 242
11.4 EL的运算符及优先级 243
11.4.1通过EL访问数据 244
11.4.2在EL中进行算术运算 245
11.4.3在EL中判断对象是否为空 246
11.4.4在EL中进行逻辑关系运算 246
11.4.5在EL中进行条件运算 248
11.5 EL的隐含对象 249
11.5.1页面上下文对象 249
11.5.2访问作用域范围的隐含对象 251
11.5.3访问环境信息的隐含对象 253
11.6定义和使用EL函数 255
11.6.1定义和使用函数 255
11.6.2定义和使用EL函数时常见的错误 257
11.7小结 259
11.8实践与练习 259
第12章 JSTL标签 261
12.1 JSTL标签库简介 262
12.2 JSTL的配置 263
12.3表达式标签 265
12.3.1 <c:out>输出标签 265
12.3.2 <c:set>变量设置标签 267
12.3.3 <c:remove>变量移除标签 269
12.3.4 <c:catch>捕获异常标签 271
12.4 URL相关标签 272
12.4.1 <c:import>导入标签 272
12.4.2 <c:url>动态生成URL标签 274
12.4.3 <c:redirect>重定向标签 276
12.4.4 <c:param>传递参数标签 276
12.5流程控制标签 277
12.5.1 <c:if>条件判断标签 278
12.5.2 <c:choose>条件选择标签 279
12.5.3 <c:when>条件测试标签 280
12.5.4 <c:otherwise>其他条件标签 282
12.6循环标签 283
12.6.1 <c:forEach>循环标签 283
12.6.2 <c:forTokens>迭代标签 286
12.7小结 287
12.8实践与练习 287
第13章 Ajax技术 289
13.1当下谁在用Ajax 290
13.1.1百度搜索提示 290
13.1.2淘宝新会员免费注册 290
13.1.3明日科技编程词典服务网 290
13.2 Ajax开发模式与传统开发模式的比较 291
13.3 Ajax使用的技术 292
13.4使用XMLHttpRequest对象 294
13.4.1初始化XMLHttpRequest对象 294
13.4.2 XMLHttpRequest对象的常用方法 295
13.4.3 XMLHttpRequest对象的常用属性 297
13.5与服务器通信——发送请求与处理响应 298
13.5.1发送请求 298
13.5.2处理服务器响应 300
13.5.3一个完整的实例——检测用户名是否唯一 301
13.6解决中文乱码问题 304
13.6.1发送请求时出现中文乱码 304
13.6.2获取服务器的响应结果时出现中文乱码 305
13.7 Ajax重构 305
13.7.1 Ajax重构的步骤 305
13.7.2应用Ajax重构实现实时显示公告信息 307
13.8 Ajax常用实例 308
13.8.1级联下拉列表 308
13.8.2显示进度条 312
13.9小结 315
13.10实践与练习 315
第4篇 流行框架与XML技术 319
第14章 Struts2基础 319
14.1 Struts2概述 320
14.1.1理解MVC原理 320
14.1.2 Struts2框架的产生 321
14.1.3 Struts2的结构体系 321
14.2 Struts2入门 322
14.2.1 Struts2的获取与放置 322
14.2.2第一个Struts2程序 323
14.3 Action对象 326
14.3.1认识Action对象 326
14.3.2请求参数的注入原理 327
14.3.3 Action的基本流程 327
14.3.4什么是动态Action 328
14.3.5动态Action的应用 329
14.4 Struts2的配置文件 331
14.4.1 Struts2的配置文件类型 331
14.4.2 Struts2的包配置 332
14.4.3名称空间配置 332
14.4.4 Action相关配置 333
14.4.5通配符实现简化配置 335
14.4.6返回结果的配置 335
14.5 Struts2的开发模式 336
14.5.1实现与Servlet API的交互 336
14.5.2域模型DomainModel 337
14.5.3驱动模型ModelDriven 338
14.6典型应用 340
14.6.1 Struts2处理表单数据 340
14.6.2使用Map类型的request、session和application 343
14.7小结 345
14.8实践与练习 346
第15章 Struts2高级技术 347
15.1 OGNL表达式语言 348
15.1.1认识OGNL 348
15.1.2 Struts2框架中的OGNL 348
15.1.3操作普通的属性与方法 350
15.1.4访问静态方法与属性 353
15.1.5访问数组 353
15.1.6访问List、Set、Map集合 354
15.1.7投影与选择 354
15.2 Struts2的标签库 355
15.2.1数据标签的应用 355
15.2.2控制标签的应用 359
15.2.3表单标签的应用 361
15.3拦截器的使用 362
15.3.1了解拦截器 362
15.3.2拦截器API 364
15.3.3使用拦截器 365
15.4数据验证机制 366
15.4.1手动验证的实现 366
15.4.2验证文件的命名规则 367
15.4.3验证文件的编写风格 367
15.5典型应用 369
15.5.1 Struts2标签下的用户注册 369
15.5.2使用验证框架对数据校验 371
15.6小结 373
15.7实践与练习 373
第16章 Hibernate技术 375
16.1初识Hibernate 376
16.1.1理解ORM原理 376
16.1.2 Hibernate简介 376
16.2 Hibernate入门 377
16.2.1获取Hibernate 377
16.2.2 Hibernate配置文件 378
16.2.3了解并编写持久化类 379
16.2.4 Hibernate映射 380
16.2.5 Hibernate主键策略 381
16.3 Hibernate数据持久化 382
16.3.1 Hibernate实例状态 382
16.3.2 Hibernate初始化类 383
16.3.3保存数据 384
16.3.4查询数据 385
16.3.5删除数据 387
16.3.6修改数据 388
16.3.7关于延迟加载 388
16.4使用Hibernate的缓存 389
16.4.1一级缓存的使用 389
16.4.2配置并使用二级缓存 390
16.5小结 392
16.6实践与练习 392
第17章 Hibernate高级应用 393
17.1实体关联关系映射 394
17.1.1数据模型与领域模型 394
17.1.2理解并配置多对一单向关联 394
17.1.3理解并配置多对一双向关联 396
17.1.4理解并配置一对一主键关联 398
17.1.5理解并配置一对一外键关联 399
17.1.6理解并配置多对多关联关系 401
17.1.7了解级联操作 403
17.2实体继承关系映射 404
17.2.1类继承树映射成一张表 404
17.2.2每个子类映射成一张表 406
17.2.3每个具体类映射成一张表 407
17.3 Hibernate查询语言 408
17.3.1了解HQL语言 408
17.3.2实体对象查询 409
17.3.3条件查询 410
17.3.4 HQL参数绑定机制 410
17.3.5排序查询 411
17.3.6聚合函数的应用 411
17.3.7分组方法 412
17.3.8联合查询 412
17.3.9子查询 413
17.4小结 414
17.5实践与练习 414
第18章 Spring核心之IoC 415
18.1 Spring概述 416
18.1.1初识Spring 416
18.1.2 Spring的获取 417
18.1.3简单配置Spring 417
18.1.4使用BeanFactory管理bean 418
18.1.5 ApllicationContext的应用 419
18.2依赖注入 420
18.2.1什么是控制反转与依赖注入 420
18.2.2 bean的配置 421
18.2.3 Setter注入 422
18.2.4构造器注入 423
18.2.5引用其他的bean 424
18.2.6匿名内部JavaBean的创建 426
18.3自动装配 426
18.3.1按bean名称装配 426
18.3.2按bean类型装配 427
18.3.3自动装配的其他方式 428
18.4 bean的作用域 429
18.4.1了解Spring中的bean 429
18.4.2 singleton的作用域 430
18.4.3 prototype的作用域 431
18.5对bean的特殊处理 432
18.5.1初始化与销毁 432
18.5.2自定义属性编辑器 433
18.6小结 435
18.7实践与练习 435
第19章 Spring核心之AOP 437
19.1 AOP概述 438
19.1.1了解AOP 438
19.1.2 AOP的简单实现 439
19.2 Spring的切入点 441
19.2.1静态切入点与动态切入点 441
19.2.2深入静态切入点 442
19.2.3深入切入点底层 442
19.2.4 Spring中其他切入点 443
19.3 Aspect对AOP的支持 444
19.3.1了解Aspect 444
19.3.2 Spring中的Aspect 444
19.3.3 DefaultPointcutAdvisor切入点配置器 445
19.3.4 NameMatchMethodPointcutAdvisor切入点配置器 446
19.4 Spring持久化 446
19.4.1 DAO模式介绍 446
19.4.2 Spring的DAO理念 447
19.4.3事务应用的管理 449
19.4.4应用JdbcTemplate操作数据库 453
19.4.5与Hibernate整合 454
19.5小结 456
19.6实践与练习 456
第20章 JSP操作XML 457
20.1 XML简介 458
20.1.1 XML文档结构 458
20.1.2 XML语法要求 459
20.1.3为XML文档中的元素定义属性 460
20.1.4 XML的注释 460
20.1.5处理字符数据 461
20.2 dom4j概述 462
20.2.1 dom4j简介 462
20.2.2 dom4j的下载与配置 463
20.3创建XML文档 464
20.3.1创建XML文档对象 464
20.3.2创建根节点 465
20.3.3添加注释 465
20.3.4添加属性 466
20.3.5创建子节点 466
20.3.6设置节点的内容 466
20.3.7设置编码 467
20.3.8设置输出格式 468
20.3.9输出XML文档 468
20.4解析XML文档 469
20.4.1构建XML文档对象 469
20.4.2获取根节点 470
20.4.3获取子节点 470
20.5修改XML文档 471
20.5.1修改节点 471
20.5.2删除节点 472
20.6典型应用 473
20.6.1保存公告信息到XML文件 473
20.6.2对保存到XML文件中的公告信息进行管理 476
20.7小结 483
20.8实践与练习 483
第5篇 项目实战 487
第21章 清爽夏日九宫格日记网 487
21.1项目设计思路 488
21.1.1功能阐述 488
21.1.2系统预览 488
21.1.3功能结构 489
21.1.4文件夹组织结构 490
21.2数据库和数据表设计 491
21.2.1数据库设计 491
21.2.2数据表设计 491
21.3公共模块设计 492
21.3.1编写数据库连接及操作的类 492
21.3.2编写保存分页代码的JavaBean 495
21.3.3配置解决中文乱码的过滤器 497
21.3.4编写实体类 498
21.4主界面设计 499
21.4.1主界面概述 499
21.4.2让采用DIV+CSS布局的页面内容居中 500
21.4.3主界面的实现过程 501
21.5用户模块设计 502
21.5.1用户模块概述 502
21.5.2实现Ajax重构 503
21.5.3用户注册的实现过程 505
21.5.4用户登录的实现过程 515
21.5.5退出登录的实现过程 518
21.5.6找回密码的实现过程 519
21.6显示九宫格日记列表模块设计 522
21.6.1显示九宫格日记列表概述 522
21.6.2展开和收缩图片 522
21.6.3查看日记原图 525
21.6.4对日记图片进行左转和右转 525
21.6.5显示全部九宫格日记的实现过程 528
21.6.6我的日记的实现过程 532
21.6.7删除我的日记的实现过程 533
21.7写九宫格日记模块设计 534
21.7.1写九宫格日记模块概述 534
21.7.2应用jQuery让PNG图片在IE 6下背景透明 535
21.7.3填写日记信息的实现过程 536
21.7.4预览生成的日记图片的实现过程 541
21.7.5保存日记图片的实现过程 545
21.8项目发布 546
21.9小结 547