第一篇 预备篇 1
第1章 HTML与表单 1
1.1 HTML基础 1
1.1.1 制作HTML文件的工具 1
1.1.2 HTML文件结构 1
1.1.3 HTML链接 3
1.1.4 制作HTML表格 4
1.1.5 HTML文件包括图像 5
1.1.6 样式表 6
1.2 创建HTML表单 7
1.2.1 创建表单 7
1.2.2 文本框、密码框和隐藏域 8
1.2.3 编写按钮 8
1.2.4 复选框和单选钮 9
1.2.5 组合框和列表框 10
1.2.6 文本区域 11
1.2.7 设置控制的tab顺序 12
本章小结 14
第2章 Servlet和JSP概述 15
2.1 Servlet和JSP 15
2.1.1 Servlet 15
2.1.2 JSP 16
2.2 为什么要创建动态网页 17
2.3 Servlet的优势 18
2.4 下载和安装Java 19
2.5 下载和配置服务器 20
2.5.1 SJSAS 9.1 20
2.5.2 Tomcat 6.0.18 22
2.6 Web应用 25
2.6.1 Web应用的目的 25
2.6.2 Web应用结构 26
2.7 创建一个简单的Web应用 28
2.7.1 使用了包的Servlet 28
2.7.2 使用包和辅助类的Servlet 29
2.7.3 web.xml文件 32
2.8 NetBean 33
本章小结 39
第3章 XML与web.xml 40
3.1 XML引论 40
3.1.1 XML基本语法 40
3.1.2 XML Schema 43
3.1.3 XSLT 47
3.1.4 DTD 50
3.2 部署描述文件(web.xml) 52
3.3 举例说明web.xml文件中的元素 54
3.3.1 给Servlet或JSP命名并定制URL 54
3.3.2 禁止激活器Servlet 56
本章小结 58
第二篇 Servlet技术 59
第4章 Servlet基础 59
4.1 Servlet的基本结构 59
4.1.1 Servlet概述 59
4.1.2 Servlet的基本结构 60
4.1.3 输出HTML文本 61
4.1.4 Servlet包 61
4.1.5 Servlet配置和运行 62
4.2 几个HTML工具函数 63
4.3 Servlet生命史 64
4.3.1 service方法 64
4.3.2 doGet、doPost和doXxx方法 65
4.3.3 init方法 65
4.3.4 destroy方法 67
4.4 Servlet查错 68
4.5 实例:emailList应用 69
本章小结 73
第5章 Servlet处理请求:表单数据和请求头 74
5.1 表单数据的作用 74
5.2 Servlet怎样读取表单数据 74
5.2.1 读取表单数据的各种方法 75
5.2.2 实例:读取3个表单变量 76
5.2.3 实例:读取所有表单数据 79
5.3 使用默认值处理参数遗漏或畸形 82
5.4 过滤HTML中的特殊字符 89
5.5 请求参数自动填入Java对象:表单Bean 94
5.6 遗漏数据或畸形数据重新显示表单 98
5.6.1 重新显示的各种选项 98
5.6.2 处理拍卖出价的Servlet 99
5.7 在Servlet中读请求头 105
5.7.1 HTTP请求头概念 105
5.7.2 在Servlet中读请求头方法 106
5.7.3 制作所有请求头的表格 107
5.8 了解HTTP 1.1请求头意义 108
5.9 送压缩网页 110
5.10 区分不同浏览器类型 113
5.11 根据用户所到达网址来改变网页 115
本章小结 117
第6章 HTTP响应;状态码和响应头 118
6.1 设置状态码 118
6.1.1 状态码概述 118
6.1.2 设置任意状态码:setStatus 119
6.1.3 设置302和404状态码:sendRedirct和sendError 119
6.2 HTTP 1.1状态码及其含义 119
6.3 将用户重定向到指定浏览器主页的Servlet 123
6.4 各种搜索引擎 124
6.5 设置响应头 129
6.6 常见响应头及其含义 129
6.7 创建Excel Spreadsheets 133
6.8 持久Servlet状态和自动刷新页面 134
6.9 用Servlet生成JPEG图像 142
6.10 下载MP3文件 146
本章小结 147
第7章 cookies和session 148
7.1 cookies概述 148
7.1.1 cookies的功能 148
7.1.2 使用cookies应该注意的问题 149
7.1.3 删除cookies 150
7.2 发送和接收cookies 151
7.2.1 发送cookies给用户 151
7.2.2 读取保存在客户端的cookies 153
7.3 用cookies监测第一次到访者 153
7.4 区分会话cookies与持久cookies 155
7.5 cookies的基本辅助工具 157
7.5.1 获取指定名字的cookies值 157
7.5.2 自动保存cookies 157
7.5.3 举例说明使用cookies辅助工具 158
7.6 cookies的两个用途 160
7.6.1 修正cookies值来追踪用户访问次数 160
7.6.2 用cookies记住用户喜好 161
7.7 session概述 164
7.8 会话状态跟踪基础 167
7.9 会话状态跟踪API 169
7.10 会话状态跟踪的3种方法 170
7.11 可变对象与不可变对象 172
7.11.1 不可变对象 172
7.11.2 可变对象 174
7.12 用购物车和会话状态跟踪建在线商店 176
7.12.1 创建前台 176
7.12.2 处理订单 178
7.12.3 后台工作:实现购物车和商品分类 182
本章小结 186
第三篇 JSP技术 187
第8章 JSP基本语法 187
8.1 JSP引论 187
8.2 用脚本元素调用Java程序 188
8.2.1 JSP模板文本 189
8.2.2 JSP表达式 189
8.2.3 scriptlets 191
8.2.4 JSP声明 193
8.3 JSP指令:page、include和taglib 195
8.3.1 page指令 195
8.3.2 include指令 200
8.4 动作元素 202
8.4.1 jsp:include动作 202
8.4.2 jsp:param 203
8.4.3 jsp:forward动作 204
8.4.4 jsp:plugin动作 205
8.4.5 jsp:fallback 205
8.5 JSP预定义变量 209
本章小结 211
第9章 在JSP中使用JavaBean 212
9.1 何谓JavaBean 212
9.2 JSP使用JavaBean的基本方法 213
9.2.1 jsp:useBean动作 213
9.2.2 jsp:getProperty动作 214
9.2.3 jsp:setProperty动作 216
9.3 利用表单参数设置bean特性 218
9.3.1 特性类型为String 218
9.3.2 个别特性与请求参数联系起来 221
9.3.3 把所有bean特性与请求参数联系起来 223
9.4 共享bean 224
9.4.1 scope属性 224
9.4.2 条件创建bean 225
9.5 4种不同方式共享bean 227
9.5.1 把bean类作为辅助类 227
9.5.2 本页共享(scope=“page”) 228
9.5.3 请求共享(scope=“request”) 230
9.5.4 会话共享(scope=“session”) 231
9.5.5 应用共享(scope=“application”) 232
本章小结 233
第10章 整合Servlet和JSP(MVC) 234
10.1 MVC模型概述 234
10.1.1 为什么需要MVC 234
10.1.2 MVC框架 235
10.2 用RequestDispatcher来实现MVC 235
10.3 MVC程序总结并举例说明 238
10.3.1 请求共享 238
10.3.2 会话共享 240
10.3.3 应用共享 243
10.4 有关MVC模型的3个问题 247
10.4.1 最后网页怎样解释相对URL 247
10.4.2 从JSP页面发出请求 248
10.4.3 包含网页 248
10.5 应用MVC模型:银行账户结余 249
本章小结 255
第11章 JSP的表达式语言 256
11.1 表达式语言的概述 256
11.1.1 为什么要引进表达式语言 256
11.1.2 表达式语言的功能 256
11.1.3 访问表达式语言 257
11.2 忽略表达式语言估值 257
11.3 访问作用域变量 259
11.3.1 何谓作用域变量 259
11.3.2 怎样访问作用域变量 259
11.3.3 属性名的限制 259
11.3.4 例题 260
11.4 访问bean特性 261
11.4.1 访问嵌套bean特性 261
11.4.2 点操作符与数组操作符 262
11.4.3 举例说明访问嵌套bean特性 263
11.5 访问集合类数据 266
11.5.1 访问数组、列表和映射 266
11.5.2 举例说明访问集合类数据 267
11.6 表达式语言的隐式对象 268
11.7 运算操作符 270
11.7.1 算术运算符 270
11.7.2 关系运算符 271
11.7.3 逻辑运算符 271
11.7.4 空操作符 271
11.8 条件估计表达式值 272
本章小结 275
第12章 自制标签 276
12.1 自制标签库的3个成员 276
12.1.1 自制标签句柄类 276
12.1.2 TLD文件 277
12.1.3 JSP文件 278
12.2 给标签指定属性 279
12.2.1 在句柄类中添加设置属性方法 279
12.2.2 如何在TLD文件中声明属性 280
12.2.3 JSP页面应用属性 280
12.2.4 举例说明使用标签属性 280
12.3 带标签体的自制标签 284
12.4 创建Tag文件 287
12.4.1 基于JSP的自制标签 287
12.4.2 举例说明用标签文件创建简单自制标签 287
12.4.3 举例说明用标签文件创建带有属性的自制标签 288
12.4.4 举例说明用标签文件创建带有标签体的自制标签 289
12.5 操作标签体 290
12.5.1 如何操作标签体 290
12.5.2 过滤HTML的标签 290
12.5.3 迭代自制标签体 295
12.6 给标签属性赋动态值 300
12.6.1 动态值为字符串 301
12.6.2 动态值为复杂对象 301
12.6.3 表格式标签 301
12.7 创建表达式语言函数 305
12.7.1 如何创建EL函数 306
12.7.2 举例说明EL函数 306
本章小结 309
第13章 JSP标准标签库 310
13.1 JSTL安装 310
13.2 一般用途标签(c:out、c:set、c:remove和c:catch) 311
13.2.1 c:out 311
13.2.2 c:set和c:remove标签 312
13.2.3 c:catch标签 313
13.3 循环标签(c:forEach、c:forTokens) 314
13.4 条件标签 316
13.4.1 c:if 316
13.4.2 c:choose 316
13.5 与URL相关的标签(c:import、c:url、c:param和c:redirect) 318
13.5.1 c:import 318
13.5.2 c:url和c:param标签 320
13.5.3 c:redirect标签 321
13.6 JSTL在购物篮中的应用 322
13.6.1 顾客界面 322
13.6.2 业务逻辑(JavaBean) 322
13.6.3 Servlet控制器 326
13.6.4 JSP文件 329
本章小结 333
第四篇 高级篇 335
第14章 数据库JDBC 335
14.1 JDBC基础 335
14.2 用JDBC-ODBC桥示例 338
14.2.1 Northwind数据库准备 338
14.2.2 NorthwindTest 339
14.2.3 NorthwindServlet 341
14.3 Derby数据库引擎 344
14.3.1 设置环境变量(Windows) 344
14.3.2 测试Derby数据库引擎 345
14.4 使用Derby数据库引擎 347
14.4.1 准备数据库 347
14.4.2 MetaData 350
14.4.3 操作数据库 351
14.5 安装与测试MySQL 352
14.5.1 安装MySQL 352
14.5.2 测试MySQL 352
14.5.3 通过JDBC连接来测试MySQL数据库 354
14.6 用预先准备好的查询语句 355
14.6.1 辅助类 355
14.6.2 用预先准备好的查询语句 360
14.6.3 建立和使用存储过程 364
14.7 商务交易 366
14.8 数据库连接池 370
14.8.1 为什么要创建数据库连接池 370
14.8.2 怎样实现数据库连接池 371
14.8.3 举例说明数据库连接池应用 373
本章小结 379
第15章 网络安全 380
15.1 网络安全概述 380
15.1.1 安全概述 380
15.1.2 SJSAS 9.1几个重要的术语 381
15.1.3 Tomcat怎样实现安全领域 382
15.2 表单认证 384
15.2.1 表单认证的8个步骤 384
15.2.2 表单的认证各步细节 385
15.2.3 举例说明表单认证 391
15.3 BASIC认证 398
15.3.1 BASIC认证概述 398
15.3.2 举例说明BASIC认证 400
15.4 配置SSL 403
15.4.1 SSL引论 403
15.4.2 配置SSL 404
15.5 声明安全与编程安全相结合 406
15.6 全部用编程处理安全 408
15.6.1 编程安全概述 408
15.6.2 举例说明编程安全 409
15.7 编程安全使用SSL 412
15.7.1 编程安全使用SSL概况 412
15.7.2 举例说明编程安全使用SSL 412
本章小结 415
第16章 Servlet和JSP的过滤器 416
16.1 建立基本的过滤器 416
16.1.1 建立一个实现filter接口的类 417
16.1.2 doFilter方法 417
16.1.3 调用FilterChain对象的doFilter方法 418
16.1.4 对有关的Servlet和JSP页面注册过滤器 418
16.1.5 禁用Servlet激活器 420
16.2 举例说明(报告过滤器) 420
16.3 记录访问日志 423
16.3.1 从过滤器来访问Servlet上下文 423
16.3.2 记录访问日志的过滤器 424
16.4 用过滤器初始化参数 425
16.4.1 操作初始化参数 425
16.4.2 访问时间过滤器 426
16.5 禁止网站访问的过滤器 428
16.5.1 中断响应 428
16.5.2 禁止网站访问的过滤器 429
16.6 修改响应 432
16.6.1 HttpServletResponseWrapper 432
16.6.2 可重用响应封装包 433
16.6.3 替代过滤器 434
16.6.4 压缩过滤器 437
16.7 填补潜在的安全漏洞 441
16.7.1 用dispatcher元素来配置过滤器 441
16.7.2 填补潜在的安全漏洞 442
本章小结 446
第17章 Web应用事件监听器 447
17.1 事件监听器概述 447
17.2 监测Servlet上下文的建立和销毁 448
17.3 监测Servlet上下文属性的变化 452
17.4 监听会话创建和销毁 458
17.4.1 概述 458
17.4.2 举例说明:统计会话的监听器 458
17.5 监视会话属性变化 462
17.5.1 监视会话属性变化概述 462
17.5.2 举例说明:监视iPhone订单 463
17.6 对请求的监听器 467
17.6.1 计算服务器请求的负荷 467
17.6.2 终止请求频率收集 471
17.7 使用多个监听器 472
本章小结 477
第18章 在线手机商店 478
18.1 在线手机商店概况 478
18.1.1 主页 478
18.1.2 Web结构 479
18.1.3 业务逻辑 482
18.1.4 数据库 484
18.1.5 处理数据库的Java类 485
18.2 下载应用 489
18.2.1 下载用户界面 489
18.2.2 下载应用结构 489
18.2.3 下载应用程序 490
18.3 购物车应用 494
18.3.1 购物车用户界面 494
18.3.2 购物车结构 495
18.3.3 购物车应用程序 495
18.4 管理应用 504
18.4.1 管理应用引论 504
18.4.2 处理购物清单应用 505
18.4.3 报告应用 510
本章小结 514
附录 缩写词列表 515
参考文献 517