第一部分 JSP预备知识与环境配置 3
第1章 JSP技术简介 3
1.1 什么是JSP 3
1.1.1 认识JSP 3
1.1.2 JSP技术原理 4
1.2 JSP与其他主流动态网页技术 5
1.2.1 JSP与ASP/ASP.NET的比较 5
1.2.2 JSP与PHP的比较 6
1.3 如何成为优秀的JSP程序员 7
1.3.1 JSP知识体系 7
1.3.2 推荐的学习路径 7
1.4 小结 9
第2章 JSP预备知识 11
2.1 HTML快速入门 11
2.1.1 HTML基本结构 12
2.1.2 HTML常用标签 13
2.1.3 XML与XHTML 24
2.2 JavaScript技术 26
2.2.1 JavaScript语法 26
2.2.2 JavaScript使用方式 28
2.2.3 JavaScript代码实例 28
2.3 小结 32
第3章 搭建JSP开发环境 33
3.1 JSP运行环境 33
3.1.1 硬件需求 33
3.1.2 操作系统 33
3.1.3 软件环境 33
3.2 安装和配置JDK 34
3.2.1 在Windows平台安装和配置JDK 34
3.2.2 在Linux平台安装和配置JDK 38
3.3 安装配置服务器——Tomcat 39
3.3.1 安装Tomcat服务器 39
3.3.2 配置Tomcat服务器 43
3.4 安装配置服务器——BEA WebLogic 44
3.4.1 安装WebLogic服务器 44
3.4.2 配置Weblogic服务器 44
3.5 安装配置服务器——IBM WebSphere 45
3.6 安装配置开发环境——Eclipse 45
3.7 安装配置开发环境——JBuilder 48
3.8 安装数据库 48
3.8.1 安装MySQL数据库 48
3.8.2 安装SQL SERVER数据库 50
3.8.3 安装Oracle数据库 50
3.9 小结 51
第二部分 JSP应用开发基础 55
第4章 JSP基本语法 55
4.1 JSP文件的结构 55
4.1.1 创建第一个JSP文件 55
4.1.2 分析JSP文件的组成元素 56
4.2 JSP的脚本元素 57
4.2.1 隐藏注释(Hidden Comment) 58
4.2.2 声明语句(Declaration) 59
4.2.3 脚本段(Scriptlets) 59
4.2.4 表达式(Expression) 60
4.3 JSP指令元素 60
4.3.1 page指令 60
4.3.2 include指令 62
4.3.3 taglib指令 63
4.4 JSP动作元素 64
4.4.1 〈jsp:useBean〉 64
4.4.2 〈jsp:setProperty〉 65
4.4.3 〈jsp:getProperty〉 66
4.4.4 〈jsp:include〉 69
4.4.5 〈jsp:forward〉 70
4.4.6 〈jsp:param〉 71
4.5 小结 71
第5章 使用JSP内置对象 73
5.1 request对象 73
5.2 response对象 76
5.3 out对象 77
5.4 pageContext对象 79
5.5 session对象 79
5.6 application对象 81
5.7 page对象 82
5.8 config对象 83
5.9 exception对象 84
5.10 小结 85
第三部分 JSP应用开发进阶 89
第6章 使用JavaBean分离表示与实现 89
6.1 剖析JavaBean 89
6.1.1 什么是JavaBean 89
6.1.2 JavaBean的特征 90
6.2 开发部署JavaBean 90
6.2.1 开发JavaBean 90
6.2.2 在Web服务器上部署JavaBean 92
6.3 在JSP中使用JavaBean 94
6.3.1 调用JavaBean 94
6.3.2 访问JavaBean属性 95
6.3.3 设置JavaBean属性 95
6.3.4 类型自动转换规则 95
6.4 使用JavaBean的计数器实例 96
6.5 小结 97
第7章 使用JSP处理HTML表单 99
7.1 在JSP中创建与处理HTML表单 99
7.1.1 一个动态交互的hellouser实例 99
7.1.2 创建HTML表单 102
7.1.3 使用GET/POST方法传递数据 103
7.1.4 使用JavaBean处理表单数据 103
7.1.5 将处理结果返回客户端 104
7.2 与Form相关的常用标签处理方法 104
7.2.1 处理隐藏域标签 104
7.2.2 处理TextArea标签 105
7.2.3 处理Radio标签 107
7.2.4 处理Checkbox标签 107
7.2.5 处理Select标签 108
7.2.6 JSP处理与Form相关的常用标签实例 108
7.3 表单数据的类型转换 112
7.4 小结 119
第8章 使用Cookie记录信息 121
8.1 什么是Cookie 121
8.2 Cookie的常见用途 122
8.3 在JSP中使用Cookie 122
8.3.1 创建Cookie 122
8.3.2 设置Cookie属性 123
8.3.3 读写Cookie 124
8.3.4 几个操作Cookie的常用技巧 127
8.4 Cookie对象的应用实例 127
8.5 使用Cookie的局限性 137
8.6 小结 138
第9章 使用会话追踪(session tracking) 139
9.1 会话与会话追踪 139
9.2 实现会话追踪的4种方式 140
9.2.1 使用Cookie 140
9.2.2 URL重写 140
9.2.3 隐藏表单字段 141
9.2.4 使用内建session对象 141
9.3 内建session对象的生命周期 145
9.3.1 在web.xml中配置内建session对象的过期时间 145
9.3.2 设置内建session对象的过期时间 145
9.4 使用HttpSessionBinndingListener接口监听内建session对象的事件 148
9.5 小结 152
第10章 XML在JSP中的应用 153
10.1 XML在JSP开发中的适用场景 153
10.2 通过SAX操作XML及实例 154
10.2.1 SAX解析XML的过程 154
10.2.2 实例:使用SAX解析一个基于XML的配置文件 156
10.3 通过JDOM操作XML及实例 159
10.3.1 获得并安装JDOM 160
10.3.2 使用JDOM读写XML文件 160
10.4 小结 162
第11章 JSP开发中的常用技巧 165
11.1 JSP程序的国际化与本地化 165
11.1.1 日期的国际化 165
11.1.2 多语言版本的JSP程序 166
11.2 解决中文乱码问题 169
11.3 创建基于Web的动态图表 172
11.3.1 安装配置JFreeChart 173
11.3.2 使用JFreeChart开发常用图表 173
11.4 文件上传 174
11.4.1 安装配置cos 174
11.4.2 使用cos上传文件 174
11.5 读写Excel文件 177
11.5.1 安装配置POI 178
11.5.2 使用POI创建Excel工作簿 178
11.5.3 使用POI读取Excel工作簿 180
11.6 使用JavaMail发送邮件 181
11.6.1 安装配置JavaMail 181
11.6.2 使用JavaMail发送收取E-mail实例 181
11.7 小结 183
第四部分 在JSP中使用数据库 187
第12章 数据库操作基础 187
12.1 关系数据库及SQL 187
12.2 通过SQL操作数据库 188
12.2.1 准备工作 188
12.2.2 创建、删除数据库 189
12.2.3 创建、删除表 190
12.2.4 更改表的结构 192
12.2.5 创建、删除视图 193
12.2.6 插入一条数据 194
12.2.7 在表中删除数据 195
12.2.8 更改表中的数据 195
12.2.9 查询表中的数据 196
12.2.10 条件子句 197
12.3 小结 197
第13章 应用JDBC进行数据库连接 199
13.1 JDBC概述 199
13.1.1 JDBC的用途 199
13.1.2 JDBC的典型用法 199
13.2 JDBC驱动器 201
13.2.1 驱动器类型 201
13.2.2 安装驱动器 201
13.2.3 使用驱动器 202
13.3 使用JDBC操作数据库 203
13.3.1 使用JDBC访问数据库的过程 203
13.3.2 使用DriverManager连接数据库 204
13.3.3 使用Statement执行SQL语句 206
13.3.4 使用ResultSet处理结果集 215
13.3.5 使用JDBC元数据 224
13.4 Java与SQL的数据类型转换 229
13.5 使用JDBC连接不同的数据库 232
13.6 小结 235
第14章 JSP中的高级数据库应用 237
14.1 数据源 237
14.1.1 直接使用数据源 237
14.1.2 配置数据源 239
14.1.3 使用配置的数据源 242
14.2 连接池 246
14.2.1 连接池的实现原理 246
14.2.2 在Tomcat上配置连接池 246
14.2.3 配置连接池时需要注意的问题 247
14.3 存取二进制文件 247
14.3.1 二进制文件的存取过程 247
14.3.2 在数据库中存取图片 248
14.4 实现分页显示 251
14.4.1 分页显示技术的优劣比较 252
14.4.2 分页显示的JavaBean实现 252
14.5 小结 259
第15章 使用JSP和JavaBean开发基于数据库的网上书店 261
15.1 系统需求和设计 261
15.1.1 显示与实现分离 261
15.1.2 模块划分 262
15.1.3 数据表设计 262
15.1.4 使用JavaBean封装数据库的访问 263
15.2 书目信息模块 269
15.2.1 在线书店的入口 269
15.2.2 待售书目 272
15.2.3 书的详细信息 274
15.3 购物车模块 275
15.4 订单处理模块 281
15.4.1 客户付款 281
15.4.2 完成购物 283
15.5 部署JSP应用程序 284
15.5.1 Tomcat的配置和调试 284
15.5.2 Tomcat数据库连接池使用 284
15.6 小结 286
第五部分 Servlet技术 289
第16章 Servlet基础 289
16.1 认识Servlet 289
16.1.1 JSP与Servlet 289
16.1.2 开发部署一个简单的Servlet 290
16.2 Servlet的生命周期 291
16.2.1 加载并初始化Servlet 292
16.2.2 处理客户请求 292
16.2.3 卸载Servlet 292
16.3 获取运行环境信息 293
16.3.1 获取Servlet信息 293
16.3.2 获取服务器端信息 296
16.3.3 获取客户端信息 298
16.4 Servlet 中的会话管理 302
16.4.1 获取HttpSession对象 302
16.4.2 在HttpSession对象中保存数据 302
16.4.3 在HttpSession对象中读取数据 302
16.4.4 会话管理综合实例 302
16.5 Servlet 中的异常处理 305
16.5.1 声明式异常处理 305
16.5.2 程序式异常处理 308
16.6 小结 308
第17章 使用Servlet过滤器和监听器 309
17.1 开发Servlet过滤器 309
17.1.1 过滤器的用途 309
17.1.2 计算Web请求处理时间的实例 310
17.2 配置过滤器 311
17.2.1 把过滤器映射到一个Servlet 312
17.2.2 把过滤器映射到JSP文件 312
17.2.3 把过滤器映射到多个Servlet 312
17.2.4 改变过滤器的过滤顺序 313
17.2.5 配置过滤器的初始参数 313
17.3 过滤器应用实例 313
17.3.1 使用过滤器校验表单数据 314
17.3.2 使用过滤器改变请求的编码 316
17.3.3 使用过滤器过滤IP地址 319
17.4 使用Servlet监听器 321
17.4.1 监听器的原理 321
17.4.2 监听器的类型 321
17.4.3 统计在线人数的监听器实例 322
17.5 小结 324
第18章 使用Servlet改造网上书店 325
18.1 系统设计 325
18.1.1 改造方案 325
18.1.2 结构设计图 326
18.1.3 使用JavaBean封装数据库的访问 326
18.2 书目信息模块 331
18.2.1 在线书店的入口 332
18.2.2 待售书目 336
18.2.3 书的详细信息 339
18.3 购物车模块 341
18.4 订单处理模块 345
18.4.1 客户付款 346
18.4.2 完成购物 349
18.5 部署Servlet应用程序 351
18.6 小结 352
第六部分 标签库与表达式语言 355
第19章 创建自定义标签库 355
19.1 JSP标签库 355
19.1.1 标签的工作原理 355
19.1.2 自定义标签的构成 356
19.2 使用Tag接口开发自定义标签 356
19.2.1 开发带属性的标签(Tags With Attributes) 357
19.2.2 开发带标签体的标签(Tags With Bodies) 361
19.3 使用Simple Tag接口简化自定义标签的开发 365
19.4 使用tag file封装可重用的代码块 367
19.5 标签库的高级开发 369
19.5.1 多个标签的嵌套 369
19.5.2 开发迭代标签库 373
19.6 小结 379
第20章 标准标签库(JSTL) 381
20.1 JSTL快速开发 381
20.1.1 安装配置JSTL 381
20.1.2 JSTL快速开发实例 382
20.2 使用JSTL的核心标签 383
20.2.1 表达式相关标签 384
20.2.2 流程控制标签 386
20.2.3 迭代标签 388
20.2.4 URL标签 390
20.3 使用JSTL的XML标签 394
20.3.1 XPath 395
20.3.2 使用XML核心标签(XML Core JSTL Tags) 396
20.3.3 使用XML转换标签(XML Transform JSTL Tags) 397
20.4 使用JSTL的格式化/国际化标签 398
20.5 使用JSTL的数据库标签 398
20.6 使用JSTL的函数标签 400
20.7 小结 402
第21章 表达式语言(EL) 403
21.1 认识表达式语言 403
21.1.1 表达式语言的优点 403
21.1.2 调用表达式语言 404
21.1.3 禁止解析表达式语言 404
21.2 表达式求值 405
21.2.1 运算符求值 405
21.2.2 条件求值 406
21.3 使用表达式语言访问作用域变量 407
21.4 使用表达式语言的隐含对象 408
21.5 使用存取运算符 411
21.5.1 访问bean的属性 411
21.5.2 访问集合中的元素 414
21.6 定义与使用函数 416
21.7 小结 419
第22章 使用JSTL与表达式语言改进网上书店 421
22.1 改进目标 421
22.2 改进方案 421
22.2.1 使用核心标签替换JSP页面中的Java代码 421
22.2.2 用数据库标签替换封装数据库操作的JavaBean 425
22.2.3 使用国际化标签本地化JSP应用程序 427
22.2.4 使用隐含包括在JSP页面中加入页头和页尾 428
22.3 发布和运行 429
22.4 小结 429
第七部分 Web编程模式和应用框架 433
第23章 Web编程模式 433
23.1 非MVC模式(Model1) 433
23.1.1 Model1的特点 433
23.1.2 Model1的应用范围 434
23.2 MVC编程模式(Model2) 435
23.2.1 什么是MVC模式 435
23.2.2 MVC模式在Web编程中的应用 436
23.3 使用JSP和Servlet实现MVC模式 437
23.3.1 控制器设计 438
23.3.2 视图设计 441
23.3.3 Model设计 443
23.4 小结 445
第24章 Struts应用开发 447
24.1 Struts的体系结构与运行原理 447
24.1.1 体系结构 447
24.1.2 运行原理 448
24.2 快速体验Struts应用实例 449
24.2.1 登录实例的介绍 449
24.2.2 实例中Struts的安装 449
24.2.3 实例中Struts的配置 451
24.3 Struts控制器部分 455
24.3.1 ActionServlet控制器类 455
24.3.2 Action组件 456
24.4 Struts模型部分 457
24.5 Struts视图部分 460
24.5.1 ActionForm组件 460
24.5.2 JSP页面 461
24.5.3 Struts标签库 462
24.6 使用Struts改造网上书店 463
24.6.1 开发模型组件 463
24.6.2 开发视图组件 464
24.6.3 开发控制器组件 467
24.6.4 创建配置文件 468
24.7 小结 470
附录A 在Tomcat上部署Web应用程序 471
A.1 创建和发布Web应用 471
A.1.1 Web应用的目录结构 471
A.1.2 部署Web应用 472
A.2 创建并发布WAR文件 473
附录B web.xml元素参考 475
B.1 命名和定制URL 475
B.1.1 为Servlet命名并定制URL 475
B.1.2 为JSP页面分配名称并定制URL 476
B.2 定义初始化参数 476
B.2.1 定义Servlet初始化参数 476
B.2.2 定义JSP页面的初始化参数 477
B.2.3 定义应用范围内的初始化参数 478
B.3 指定欢迎页 478
B.4 指定处理错误的页面 479
B.5 设置过滤器 479
B.5.1 filter元素 480
B.5.2 filter-mapping元素 480
B.6 设置监听器 480
B.7 设置会话过期时间 481
B.8 设置JSP的相关配置 481
B.8.1 定位TLD 481
B.8.2 设置jsp-property-group元素 481
B.9 关联文件与MIME类型 483
附录C 网上资源 484
C.1 国内资源 484
C.2 国外资源 484