第1篇 基础篇 1
第1章 JSP开发基础 1
1.1 JSP的概念和作用 1
什么是JSP 1
JSP和Servlet扮演的角色 2
JSP和其他框架的集成 3
学习JSP网站编程 7
1.2安装和配置JDK 8
安装JDK 8
配置JDK 11
1.3安装和配置Tomcat 12
安装Tomcat服务器 13
测试安装是否成功 15
1.4开发第1个JSP页面 16
创建Form提交表单 16
创建表单处理Servlet 16
创建JSP显示页面 17
部署第1个Web应用 18
1.5小结 19
第2章 JSP基本语法 20
2.1 JSP基础 20
JSP和Servlet的关系 20
典型的JSP文件 24
JSP文件组成结构 25
JSP的生命周期 27
2.2 JSP页面元素 28
页面指令元素 29
脚本元素 37
动作元素 38
2.3 JSP内建对象 45
输出对象out 46
请求对象request 47
响应对象response 50
会话对象session 52
页面上下文对象pageContext 55
全局对象application 56
Servlet初始化参数对象config 57
页面对象page 58
2.4使用JSP实现简单登录实例 59
创建登录HTML表单 59
使用Request获得数据 60
处理表单数据 61
使用 Session保存用户对话 62
2.5小结 63
第3章 Servlet基础 64
3.1 Servlet概念 64
什么是Servlet 64
Servlet技术的特点 65
Servlet的生命周期 66
开发并部署一个简单的Servlet 68
3.2基本Servlet结构 69
init方法 70
service方法 72
doGet、 doPost和doXxx方法 72
destroy方法 75
3.3 Servlet的基本配置 77
Servlet的名称及路径配置 79
初始化参数 80
启动装入优先级 80
Servlet映射 81
3.4 Servlet请求和响应 83
Request实现请求 83
Response处理响应 90
3.5 Servlet请求转发 96
使用sendRedirect转发 96
使用Dispatch转发 98
Redirect和Request Dispatch的区别 104
3.6使用Servlet改进登录实例 104
在Servlet中获得数据 105
使用Servlet将用户转向到指定页面 107
在Servlet中使用Session 108
3.7小结 109
第4章 JSP和Servlet的集成 110
4.1 JSP和Servlet结合的两种模式 110
模式一 110
模式二 113
两种模式的比较 117
MVC模式 117
JSP和Servlet实现的MVC模式 119
4.2使用MVC编程改进登录实例 120
JSP实现表现层 120
JavaBean模型层 121
Servlet控制层Control 123
4.3小结 124
第5章 JDBC数据库访问技术 125
5.1 JDBC和驱动程序 125
为什么需要JDBC 126
数据库驱动程序 126
使用JDBC访问数据库的过程 127
5.2 JDBC处理数据库方法 129
加载并注册数据库驱动 129
建立到数据库的连接 130
访问数据库 131
Statement和PreparedStatement 133
ResultSet结果集 140
事务处理 142
5.3连接不同的数据库 145
连接MySQL数据库 145
连接MSSQL数据库 146
连接Oracle数据库 147
5.4存取二进制文件 147
二进制文件的存取过程 147
在数据库中存取图片 148
5.5使用JDBC操作数据库示例 151
在JSP页面中查询数据 151
分页 155
增、删及改数据 161
5.6使用JDBC改进用户登录模块 167
在JSP中访问数据库 167
在Servlet中访问数据库 169
在JavaBean中访问数据库 170
5.7小结 172
第6章 JSP常用技巧 173
6.1会话跟踪技巧 173
使用session的会话跟踪 174
使用cookie跟踪会话 176
6.2数据共享技巧 179
使用Java static属性 179
基于session会话 181
基于Web范围 182
6.3错误处理技巧 185
JSP错误的常见类型 185
定向错误到友好页面 186
Web.xml中的配置HTTP错误 188
在JSP页面中处理错误 189
6.4 JSP文件上传技巧 190
使用JSP SmartUpload上传 190
SmartUpload文件上传实例 193
6.5在JSP中使用JavaBean 196
使用JavaBean的原因 196
JavaBean的基本概念 196
在JSP中使用JavaBean 198
访问JavaBean属性 200
设置JavaBean属性 201
6.6小结 202
第7章 JSP中常见问题及其处理 203
7.1中文乱码问题 203
出现中文乱码的原因 204
JSP显示中文乱码处理 205
JSP页面传递中文乱码处理 206
Servlet接收参数中文乱码处理 208
URL参数中文乱码处理 209
数据库中文乱码处理 210
7.2数据库处理问题 211
找不到数据库驱动Drive 212
无法连接数据库 212
数据库连接线程不足的问题 213
数据库查询性能差的问题 215
7.3国际化问题 219
在JSP中实现国际化 219
时间格式的国际化 222
语言国际化 225
7.4 JSP安全问题 227
防范SQL注入式攻击 227
JSP中使用认证授权 229
7.5小结 235
第8章 在Eclipse中开发JSP和Servlet 236
8.1 MyEclipse的下载与安装 236
安装Eclipse 237
安装Eclipse多国语言包 237
下载和安装MyEclipse 238
绑定Tomcat服务器与My-Eclipse 241
在Eclipse中启动Tomcat服务器 241
8.2在Eclipse中创建Web工程 242
新建工程向导 242
Web工程目录结构 244
在Eclipse中添加类库 245
8.3新建JSP页面 247
使用向导新建JSP页面 247
在Eclipse中编辑JSP页面 249
添加表单Form元素 251
8.4新建Servlet 253
使用向导新建Servlet 253
查看Web.xml 256
编写处理代码 256
8.5连接数据库 257
添加MySQL数据库驱动程序 258
建立数据库表 258
新建连接数据库类 259
修改Servlet处理数据库 260
8.6在Eclipse中调试JSP和Servlet 261
部署Web项目 261
运行JSP 263
在Servlet中设置断点 263
在JSP中设置断点 263
跟踪监控变量 264
8.7小结 266
第9章 表达式语言EL 267
9.1表达式语言概述 267
9.2语法 268
[]和.操作符 268
算术运算符 269
关系运算符 270
逻辑运算符 271
Empty运算符 272
条件运算符 272
改变运算符的优先级 272
9.3隐含对象 273
9.4命名变量 278
9.5保留字 279
9.6表达式语法实例 279
9.7其它功能 280
9.8小结 281
第10章 标准标签库JSTL 282
10.1 JSTL概念 282
JSTL概述 283
安装JSTL标签库 283
10.2一般用途的标签 285
<c:out>标签 285
<c:set>标签 286
<c:remove>标签 288
<c:catch>标签 288
10.3条件标签 291
<c:if>标签 291
<c:choose>标签 292
<c:when>标签 293
<c:otherwise>标签 293
10.4迭代标签 294
<c:forEach>标签 294
<c:forTokens>标签 297
10.5与URL有关的标签 299
<c:import>标签 299
<c:redirect>标签 302
<c:url>标签 303
<c:param>标签 304
10.6函数标签 305
<fn:startsWith>标签 305
<fn:endsWith>标签 305
<fn:indexOf>标签 306
<fn:replace>标签 306
<fn:substring>标签 306
<fn:split> 306
10.7使用标签库改进用户登录实例 307
10.8小结 309
第11章 定义标签扩展 310
11.1 JSP标签扩展 310
自定义标签的原因 310
标签类型及结构 312
11.2自定义标签接口 313
Tag接口 314
IteratorTag接口 315
BodyTag接口 316
SimpleTag接口 317
11.3标签开发实例 318
实现Tag接口 319
从TagSupport继承 321
11.4标签库配置 322
创建标签库描述文件 322
在Web中使用标签 324
11.5小结 325
第2篇 扩展篇 326
第12章 基于MVC的Struts框架 326
12.1 JSP集成Struts框架 326
Struts体系结构 326
Struts的MVC模式 327
Struts流行的原因 329
在Struts中集成JSP 329
12.2 Struts核心组件 330
控制组件Action 330
模型组件 331
视图组件ActionForm 335
12.3 Struts HTML标签库 336
Struts的标签体系 336
HTML标签库 337
HTML标签 338
Form标签 340
12.4 Struts Bean标签库 342
12.5 Struts Logic标签库 344
12.6 Struts验证Validator框架 347
Validator框架 347
安装与配置及应用Validator框架 349
12.7小结 351
第13章 Eclipse中开发Struts登录实例 352
13.1 MyEclipse对Struts的支持 352
文件创建向导支持 353
struts-config.xml可视化编辑器 353
13.2在Eclipse中创建Struts工程 355
新建Struts工程向导 355
Struts项目结构 356
Struts类的包结构 356
查看web.xml和struts-config.xml文件 357
13.3利用向导创建JSP 359
创建JSP页面 359
创建ActionForm 359
创建Action 362
创建Forward 363
查看Struts-config.xml文件 364
13.4在Eclipse中编辑JSP页面 365
Struts标签输入支持 366
编写struts-config.xml文件 367
13.5 Struts验证支持 367
添加验证支持配置 367
添加页面输入验证 369
13.6在Eclipse中调试Struts 371
部署Struts项目 371
运行入口页面 372
在Action中设置断点 372
跟踪ActionForm变量 372
13.7小结 374
第14章 使用Hibemate实现JSP持久层 375
14.1 Hibernate ORM技术 375
Hibernate概念和体系结构 375
Hibernate数据库处理API 377
14.2 Hibernate基本配置 380
Hibernate的下载和安装 380
Hibernate开发的基本步骤 381
Hibernate配置文件 382
持久化类 382
对象/关系映射文件 384
14.3 Hibernate基本操作 385
持久化对象 385
查询对象 385
更新对象 387
删除对象 388
Hibernate基本操作实现实例 388
14.4 Hibernate对象标识符 392
14.5 Hibernate查询HQL语言 393
HQL语言特点 394
HQL查询构成 394
子查询 396
14.6在JSP中使用Hibernate 396
使用Hibernate的JSP项目结构 396
在JSP中使用Hibernate访问数据库 397
14.7小结 402
第15章 使用Spring集成JSP 403
15.1 Spring概述 403
控制反转IoC容器 404
面向方面的AOP编程 405
Spring如何集成JSP 407
15.2基于Spring IoC容器开发 407
Spring的依赖注入 407
Bean封装机制 409
Bean的基本配置 410
15.3 Spring集成JDBC 414
Spring及JDBC支持 414
JDBCTemplate API技术 415
JDBCTemplate与Template设计模式 419
JDBCTemplate对JDBC的改进 420
JDBCTemplate与数据库事务管理 422
在JSP中使用Spring集成JDBC 424
15.4 Spring集成Hibernate 429
Spring的Hibernate支持 429
HibemateDaoSupport支持 429
Hibernate SessionFactory注入 431
使用HibemateTemplate模板 432
HibernateTemplate的简捷方法 435
在JSP中使用Spring集成Hibernate 435
15.5小结 440
第16章 在Eclipse中开发Hibemate和Spring 441
16.1在Eclipse中开发Hibernate 441
为已有JSP项目添加Hiberrnnate支持 442
Hibernate项目结构 443
Hibernate类包结构 444
hibernate.cfe.xml文件 445
16.2创建映射文件 446
连接到数据库 447
新建Java类和映射文件 449
完善Java类及映射文件 450
16.3应用DAO模式 451
编写业务层及其方法 451
编写DAO业务接口 452
编写DAO Hibernate实现 453
在JSP和Servlet中调用Hibernate 458
调试Hibernate应用 460
16.4在Eclipse中开发Spring 461
为已有JSP项目添加Spring支持 461
Spring项目结构 462
Spring类包结构 462
applicationContext.xml文件 463
16.5使用Spring ORM改进Hibernate 464
修改Spring配置文件 464
创建Hibernate sessionFactory连接 465
创建poj o映射 466
创建H ibemateTemplate 467
16.6小结 468
第3篇 实战篇 469
第17章 登录验证模块 469
17.1在MySQL中建立用户信息表 469
确定用户字段 470
创建数据库和用户表 470
17.2登录验证的建模分析 471
活动图 471
登录与注册的运行流程分析 471
17.3创建用户数据连接缓冲池 472
下载与设置数据连接缓冲池类包 472
创建数据连接缓冲池 473
重载ActionServlet以应用连接缓冲池 474
配置web.xml应用重载的DataActionServlet 476
17.4实现用户登录 476
创建登录视图组件 476
创建登录的控制器组件 478
创建模型组件 480
配置web.xml和struts-config.xml文件 481
验证用户输入数据的有效性 484
登录演示 485
17.5实现新用户注册 485
创建注册视图组件 486
创建注册的控制器组件 487
创建模型组件 489
验证用户输入数据的有效性 489
配置web.xml和struts-config.xml文件 490
配置资源包属性文件 491
注册演示 492
17.6小结 492
第18章 网站统计模块 493
18.1需求分析及数据库设计 493
需求分析 494
数据库设计 494
18.2获取统计数据 495
获取客户端信息 495
截取用户操作系统和浏览器信息 497
保存信息到数据库 498
防止重复记录 500
18.3显示网站访问计数器 502
显示当前在线人数计数器 502
显示网站访问量计数器 503
使用图片样式显示计数器 504
18.4生成统计分析结果 505
使用SQL命令统计分析 505
JFreeChart简介 507
生成日流量统计折线图 509
生成月流量统计柱状图 513
生成访问时段分布统计柱状图 516
生成浏览器类型统计饼状图 518
生成操作系统类型统计立体饼状图 520
18.5小结 523
第19章 邮件收发模块 524
19.1邮件相关协议简介 524
19.2 JavaMail简介 525
配置JavaMail开发环境 526
JavaMail邮件处理过程 526
JavaMail常用类 526
一个简单的邮件发送程序 529
19.3发送HTML格式的邮件 531
撰写邮件页面 531
邮件发送Servlet 532
配置web.xml文件及运行 534
处理主题与正文中的乱码问题 535
19.4发送带附件的邮件 536
发送本地文件形式的附件 537
发送远程文件形式的附件 537
19.5实现邮件接收 538
接收邮件的一般过程 538
一个简单的邮件接收Servlet程序 539
19.6小结 541
第20章 网页搜索模块 542
20.1搜索引擎概述 542
搜索引擎分类 543
搜索引擎的实现原理 545
搜索引擎的相关技术 546
20.2用第三方API实现站内搜索 547
使用Google API 547
使用百度API 548
20.3基于Java的全文搜索引擎Lucene 549
Lucene概述 550
搜索应用程序与Lucene之间的关系 550
Lucene类包简介 551
建立索引 551
搜索索引 554
20.4构建Lucene Web搜索程序 556
搜索程序的工作流程 556
建立搜索页面 557
建立搜索控制Servlet 558
创建索引 559
搜索索引 561
运行程序 564
20.5小结 565
第21章 上传和下载模块 566
21.1上传和下载简介 566
21.2一个简单的文件下载程序 566
21.3通过Servlet实现文件上传 568
建立文件上传表单 568
利用Servlet实现文件上传 569
配置web.xml并运行 570
21.4使用FileUpload组件上传文件 571
FileUpload上传处理过程 571
一个简单的文件上传实例 573
配置web.xml并运行 576
查看上传进度 577
21.5小结 578
第22章 新闻发布系统 579
22.1系统分析与总体设计 579
需求分析 580
总体设计 580
22.2数据库设计与实现 581
数据库需求分析 581
数据库逻辑设计 582
创建数据表 583
22.3编写数据库处理类 585
22.4编写JavaBean实现 587
处理管理员数据JavaBean 587
处理一级栏目数据JavaBean 588
处理二级栏目数据JavaBean 588
处理新闻数据JavaBean 589
22.5设计后台页面与功能实现 590
实现管理员登录 591
实现一级栏目的功能 597
实现二级栏目的功能 604
实现栏目下的相关新闻功能 607
后台管理主页面集成 614
演示后台功能 619
22.6前台页面设计与功能实现 624
主页面设计与功能实现 624
新闻显示页面设计与功能实现 626
22.7小结 627
第23章 在线相册系统 628
23.1系统分析与总体设计 628
系统功能描述 628
选择平台与架构 629
23.2数据库设计与实现 629
数据库需求分析 629
23.3实现DAO层 631
DAO组件的定义 632
实现DAO组件 633
23.4实现Web层 651
相册管理 651
相册列表 655
上传相片 659
查看相片 664
管理相片 667
23.5小结 667
第24章 在线购物系统 668
24.1系统分析与总体设计 668
24.2数据库设计与实现 669
数据库需求分析 669
数据库逻辑设计 670
24.3设计与搭建架构 673
设计视图层 674
设计控制层 674
设计对象模型 676
设计数据访问层 678
24.4在线购物页面 682
实现购书主页 682
实现二级分类页 685
实现图书详细页 686
24.5商品查询 687
实现表示层 687
实现业务逻辑 688
实现数据访问层 689
24.6管理购物车 689
添加商品到购物车 690
更新图书数量 696
取消购物车中的商品 699
24.7生成订单导航页面 700
确认收货及定货地址 701
选择送货时间及运费 706
选择包装类型及费用 708
选择付款方式 709
选择缺货处理及余款处理方式 709
确认订单 711
成功生成订单 715
24.8小结 717