Chapter1Web应用程序简介 1
1.1 Web应用程序基础知识 2
1.1.1关于HTML 2
1.1.2 URL、 URN与URI 3
1.1.3关于HTTP 5
1.1.4有关URL编码 8
1.1.5动态网页与静态网页 10
1.2 Servlet/JSP简介 12
1.2.1何谓Web容器 13
1.2.2 Servlet与JSP的关系 15
1.2.3关于MVC/Model2 18
1.2.4 Java EE简介 20
1.3重点复习 21
1.4课后练习 22
Chapter 2编写与设置Servlet 25
2.1第一个Servlet 26
2.1.1准备开发环境 26
2.1.2第一个Servlet程序 28
2.2在HelloServlet之后 31
2.2.1关于HttpServlet 31
2.2.2使用@WebServlet 33
2.2.3使用web.xml 34
2.2.4文件组织与部署 36
2.3进阶部署设置 37
2.3.1 URL模式设置 38
2.3.2 Web目录结构 40
2.3.3使用web-fragment.xml 41
2.4重点复习 44
2.5课后练习 45
Chapter 3请求与响应 47
3.1从容器到HttpServlet 48
3.1.1 Web容器做了什么 48
3.1.2 doXXX()方法 50
3.2关于HttpServletRequest 53
3.2.1处理请求参数与标头 53
3.2.2请求参数编码处理 55
3.2.3 getReader()、 getInputStream()读取Body内容 58
3.2.4 getPart()、 getParts()取得上传文件 63
3.2.5使用RequestDispatcher调派请求 67
3.3关于HttpServletResponse 73
3.3.1设置响应标头、缓冲区 73
3.3.2使用getWriter()输出字符 74
3.3.3使用getOutputStream()输出二进制字符 78
3.3.4使用sendRedirect()、sendError() 79
3.4综合练习 81
3.4.1微博应用程序功能概述 81
3.4.2实现会员注册功能 83
3.4.3实现会员登录功能 86
3.5重点复习 88
3.6课后练习 89
Chapter 4会话管理 93
4.1会话管理基本原理 94
4.1.1使用隐藏域 94
4.1.2使用Cookie 97
4.1.3使用URL重写 101
4.2 HttpSession会话管理 103
4.2.1使用HttpSession 104
4.2.2 HttpSession会话管理原理 107
4.2.3 HttpSession与URL重写 110
4.3综合练习 112
4.3.1修改微博应用程序 112
4.3.2新增与删除信息 114
4.3.3会员网页显示信息 116
4.4重点复习 119
4.5课后练习 119
Chapter 5 Servlet进阶API、过滤器与监听器 121
5.1 Servlet进阶API 122
5.1.1 Servlet、ServletConfig与GenericServlet 122
5.1.2使用ServletConfig 124
5.1.3使用ServletContext 127
5.2应用程序事件、监听器 130
5.2.1 ServletContext事件、监听器 130
5.2.2 HttpSession事件、监听器 133
5.2.3 HttpServletRequest事件、监听器 139
5.3过滤器 140
5.3.1过滤器的概念 141
5.3.2实现与设置过滤器 142
5.3.3请求封装器 147
5.3.4响应封装器 151
5.4异步处理 155
5.4.1 AsyncContext简介 155
5.4.2模拟服务器推播 157
5.4.3更多AsyncContext细节 160
5.5综合练习 162
5.5.1创建UserService 162
5.5.2设置过滤器 167
5.5.3重构微博 168
5.6重点复习 173
5.7课后练习 175
Chapter 6使用JSP 179
6.1从JSP到Servlet 180
6.1.1 JSP生命周期 180
6.1.2 Servlet至JSP的简单转换 183
6.1.3指示元素 187
6.1.4声明、Scriptlet与表达式元素 191
6.1.5注释元素 195
6.1.6隐式对象 195
6.1.7错误处理 198
6.2标准标签 203
6.2.1 <jsp:include>、<jsp:forward>标签 203
6.2.2 <jsp:useBean>、<jsp:setProperty>与<jsp:getProperty>简介 204
6.2.3深入<jsp:useBean>、<jsp:setProperty>与<jsp:getProperty> 206
6.2.4谈谈Model 1 210
6.2.5 XML格式标签 212
6.3表达式语言(EL) 213
6.3.1 EL简介 213
6.3.2使用EL取得属性 215
6.3.3 EL隐式对象 218
6.3.4 EL运算符 219
6.3.5自定义EL函数 220
6.4综合练习 222
6.4.1改用JSP实现视图 222
6.4.2重构UserService与member.jsp 226
6.4.3创建registerjsp、 index.jsp、user.jsp 232
6.5重点复习 237
6.6课后练习 238
Chapter 7使用JSTL 241
7.1 JSTL简介 242
7.2核心标签库 244
7.2.1流程处理标签 244
7.2.2错误处理标签 247
7.2.3网页导入、重定向、URL处理标签 248
7.2.4属性处理与输出标签 250
7.3 I18N兼容格式标签库 252
7.3.1 I18N基础 253
7.3.2信息标签 256
7.3.3地区标签 258
7.3.4格式标签 263
7.4 XML标签库 267
7.4.1 XPath、 XSLT基础 267
7.4.2解析、设置与输出标签 270
7.4.3流程处理标签 271
7.4.4文件转换标签 272
7.5函数标签库 274
7.6综合练习 276
7.6.1修改register jsp 276
7.6.2修改member.jsp 277
7.6.3修改user.jsp 278
7.7重点复习 279
7.8课后练习 281
Chapter 8自定义标签 285
8.1 Tag File自定义标签 286
8.1.1 Tag File简介 286
8.1.2处理标签属性与Body 289
8.1.3 TLD文件 291
8.2 Simple Tag自定义标签 293
8.2.1 Simple Tag简介 293
8.2.2了解API架构与生命周期 295
8.2.3处理标签属性与Body 298
8.2.4与父标签沟通 302
8.2.5 TLD文件 306
8.3 Tag自定义标签 306
8.3.1 Tag简介 307
8.3.2了解架构与生命周期 308
8.3.3重复执行标签Body 310
8.3.4处理Body运行结果 312
8.3.5与父标签沟通 315
8.4综合练习 318
8.4.1实现首页最新信息 318
8.4.2自定义Blahs标签 321
8.5重点复习 324
8.6课后练习 326
Chapter 9整合数据库 329
9.1 JDBC入门 330
9.1.1 JDBC简介 330
9.1.2连接数据库 335
9.1.3使用Statement、ResultSet 341
9.1.4使用PreparedStatement、CallableStatement 346
9.2 JDBC进阶 349
9.2.1使用DataSource取得连接 349
9.2.2使用ResultSet卷动、更新数据 353
9.2.3批次更新 355
9.2.4 Blob与Clob 356
9.2.5事务简介 364
9.2.6 metadata简介 371
9.2.7 RowSet简介 374
9.3使用SQL标签库 379
9.3.1数据源、查询标签 379
9.3.2更新、参数、事务标签 380
9.4综合练习 382
9.4.1重构/使用DAO 382
9.4.2使用JDBC实现DAO 385
9.4.3设置JNDI部署描述 389
9.5重点复习 390
9.6课后练习 391
Chapter 10 Web容器安全管理 393
10.1了解与实现Web容器安全管理 394
10.1.1 Java EE安全基本概念 394
10.1.2声明式基本身份验证 397
10.1.3容器基本身份验证原理 400
10.1.4声明式窗体验证 402
10.1.5容器窗体验证原理 403
10.1.6使用HTTPS保护数据 404
10.1.7编程式安全管理 407
10.1.8标注访问控制 409
10.2综合练习 411
10.2.1使用容器窗体验证 412
10.2.2设置DataSourceRealm 413
10.3重点复习 416
10.4课后练习 417
Chapter 11 JavaMail入门 419
11.1使用JavaMail 420
11.1.1传送纯文字邮件 420
11.1.2发送多重内容邮件 423
11.2综合练习 426
11.2.1实现取回密码功能 427
11.2.2接收重送密码请求 431
11.3重点复习 433
11.4课后练习 433
Chapter 12从模式到框架 435
12.1认识设计模式 436
12.1.1 Template Method模式(Gof设计模式) 436
12.1.2 Intercepting Filter模式(Java EE设计模式) 437
12.1.3 Model-View-Controller模式(架构模式) 437
12.2重构、模式与框架 439
12.2.1 Business Delegate模式 439
12.2.2 Service Locator模式 439
12.2.3 Transfer Object模式 440
12.2.4 Front Controller模式 441
12.2.5库与框架 442
12.3重点复习 443
12.4课后练习 444
Appendix A 如何使用本书项目 445
Appendix B MySQL入门 449