第1章 JSP Web开发概述 1
1.1 什么是JSP 2
1.2 Web体系结构 3
1.2.1 Web浏览器 3
1.2.2 Web服务器 4
1.3 N层应用 5
1.3.1 两层体系结构 5
1.3.2 三层体系结构 5
1.3.3 n层体系结构 6
1.4.2 向Web服务器发送请求 7
1.4.1 采集数据 7
1.4 Web应用体系结构 7
1.4.3 执行服务器脚本(或程序) 9
1.4.4 把结果返回给浏览器 9
1.5 服务器端开发技术 9
1.5.1 公共网关接口(CGI) 10
1.5.2 专有Web服务器API(ISAPI和NSAPI) 11
1.5.3 Active Server Page(ASP) 11
1.5.4 Server-Side JavaScript 12
1.5.5 PHP 12
1.6 Java Servlet 12
1.7 JavaServer Pages 13
1.8 JSP的优点 15
1.8.1 性能 15
1.8.2 可复用的组件 16
1.8.3 分离表示和实现 17
第2章 开发环境 18
2.1 JSP开发工具简介 18
2.1.1 支持JSP的应用服务器 18
2.1.2 支持JSP/Servlet的开发工具 20
2.2 Tomcal+Apache的搭建 20
2.2.1 Linux 21
2.2.2 Solaris 22
2.2.3 Windows 23
2.2.4 其他平台 23
2.2.5 安装注意事项 24
2.3 应用程序的构建 25
2.3.1 应用程序目录 25
2.3.2 配置文件 25
2.3.3 服务器配置 26
2.3.4 校验应用程序 27
1.4 简单JSP程序的编写 28
2.4.1 Hello World! 28
2.4.2 Hello,World!revisited 28
2.4.3 Hello,World!Bean 29
2.4.4 Hello Real World 31
2.5 JSP运行原理 32
2.5.1 附加JSP支撑(support) 32
2.5.2 JSP是怎样工作的 33
2.5.3 缓存的输出 34
2.5.4 会话管理 35
2.5.5 可伸缩性 36
2.5.6 错误处理 38
3.1.2 基本规则 39
3.1.1 程序结构 39
3.1 Java语法基础 39
第3章 Java程序设计基础 39
3.2 Java运行环境 45
3.2.1 构建Java运行环境 45
3.2.2 一个简单Java程序 46
3.3 类 47
3.3.1 对象实例 48
3.3.2 实例变量 48
3.3.3 new操作符 49
3.3.4 点操作符 50
3.3.5 成员函数定义 50
3.3.7 this关键字 51
3.3.6 成员函数调用 51
3.3.8 构造函数 52
3.3.9 重载 53
3.3.10 继承 55
3.3.11 super关键字 55
3.3.12 成员函数的覆盖 56
3.3.13 final关键字 57
3.3.14 静态 57
3.3.15 抽象 58
3.4 接口与包 59
3.4.1 接口 59
3.4.2 包(Package) 60
3.5 Java异常处理 62
3.5.1 异常基础 62
3.5.2 异常的类型 63
3.5.3 try与catch 63
3.5.4 多个catch子句 64
3.5.5 try语句的嵌套 64
3.5.6 throw语句 65
3.5.7 finally 66
3.6 多线程 67
3.6.1 多线程的概念 67
3.6.2 Java线程举例 70
3.6.3 常用线程类成员函数 74
3.7 Java程序举例 75
3.7.1 构造一个加法器 75
3.7.2 编写一个applet 77
第4章 JSP编程 79
4.1 脚本语言 79
4.2 JSP标签 80
4.3 JSP指令 80
4.3.1 页面指令 80
4.3.2 include指令 87
4.3.3 标签库指令 88
4.4 JSP脚本 88
4.4.1 声明 89
4.4.2 表达式 92
4.4.3 Scriptlet(小脚本) 93
4.5 控制流 95
4.5.1 条件化 95
4.5.2 循环 95
4.5.3 异常处理 96
4.6 JSP注释 98
4.6.1 内容注释 98
4.5.4 注意 98
4.6.2 JSP注释 99
4.6.3 脚本语言注释 99
4.7 JSP动作 100
4.7.1 Forward 100
4.7.2 Include 103
4.7.3 Plug-in 104
4.7.4 Bean标签 105
第5章 JSP内建对象 106
5.1 与Servlet有关的对象 107
5.1.1 Page对象 107
5.2.1 Request对象 108
5.1.2 Config对象 108
5.2 Input/Output对象 108
5.2.2 Response对象 110
5.2.3 Out对象 112
5.3 范围对象 113
5.3.1 Session对象 114
5.3.2 Application对象 115
5.3.3 PageContext对象 117
5.4 错误处理对象 119
5.4.1 Exception对象 119
6.1.1 组件构造 121
6.1 JSP组件模型 121
第6章 JSP与JavaBeans 121
6.1.2 组件构造的优点 122
6.1.3 Web网络工程的组件设计 122
6.1.4 用组件构建程序 123
6.2 JavaBean基本原则 124
6.3 JSP的Bean标签 127
6.3.1 基于标签的组件程序设计 127
6.3.2 访问JSP组件 128
6.3.3 Bean的初始化 134
6.4.2 page范围的Bean 140
6.4.1 Bean的可访问性及生命周期 140
6.4 JavaBean生命周期 140
6.4.3 Request范围的Bean 141
6.4.4 session范围的Bean 142
6.4.5 application范围的Bean 144
6.5 JavaBean的内涵 145
6.5.1 Bean惯例 146
6.5.2 Bean的构造函数 147
6.5.3 定义Bean的属性 147
6.5.4 索引化属性 150
6.5.5 布尔属性 153
6.5.6 JSP类型转换 154
6.5.7 如何设置Bean 155
6.6 JavaBeans接口 157
6.6.1 BeanInfo接口 157
6.6.2 系列化接口 157
6.6.3 Http SessionBindingListener接口 158
6.6.4 Bean API的其他特点 158
6.7 JavaBean与小脚本 159
6.7.1 通过小脚本访问Bean 159
6.7.2 访问小脚本创建的对象 160
6.8 实例 163
6.8.1 一个TimerBean 163
6.8.2 计算利息的Bean 165
第7章 JSP开发技术 170
7.1 Web应用程序 170
7.1.1 Web应用分层 170
7.1.2 Web应用程序流程 171
7.1.3 结构设计方法 172
7.2 以页面为中心的设计 172
7.2.1 每个页面的作用 172
7.2.2 构建复合页面 174
7.2.3 中心页面方法的局限性 176
7.3 以Servlet为中心的设计 177
7.3.1 在Hello,World例子中使用Servlets 177
7.3.2 JSP和Servlet API 178
7.3.3 控制应用程序的Servlets 180
7.3.4 用Servlet控制应用程序逻辑 181
7.3.5 Servlets作为单一的人口 182
7.3.6 Servlet中的错误处理 185
7.3.7 以Servlet为中心的员工浏览图 186
7.3.8 EmployeeBean 187
7.3.9 FetchEmployeeServlet 189
7.3.10 用JSP文件显示员工 193
7.3.11 查看JSP页面 193
7.4.1 应用程序环境 195
7.4 选择适当的结构体系 195
7.4.2 企业软件需求 196
7.4.3 性能可伸缩性提供的能力 197
7.4.4 技术考虑 197
7.4.5 组织考虑 198
7.5 JSP高级开发技术 199
7.5.1 Servlets有何缺陷 199
7.5.2 不同的方式 199
7.6 JSP存在的问题 209
7.6.1 使用Servlets的问题 209
7.6.2 使用template engine的问题 214
7.7.1 结构 215
7.6.3 JSP的角色 215
7.7 JSP与ASP的比较 215
7.7.2 性能和平台无关性 216
7.7.3 Session管理 216
7.7.4 Application管理 216
7.7.5 Server Side Includes 217
7.7.6 JavaBeans组件 217
7.7.7 JSP和数据库 218
7.7.8 Java的优势 218
7.7.9 JSP标签可扩充性 219
7.7.10 JSP跨平台的可重用性 219
8.1 JSP与JDBC 221
第8章 操作数据库 221
8.1.1 JNDI和数据源 222
8.1.2 预备声明 222
8.2 数据库驱动JSP 223
8.2.1 从表数据中建立JSP组件 223
8.2.2 JSP与JDBC数据类型 225
8.2.3 保持固定连接 228
8.2.4 处理大量结果 230
8.2.5 事务处理 233
8.3.2 所用数据库 234
8.3.1 工程概览 234
8.3 一个JSP订票系统的例子 234
8.3.3 设计概要 235
第9章 一个FAQ工程 243
9.1 简介 243
9.1.1 开发本项目的动机 244
9.1.2 所需的技术条件 244
9.1.3 应用模块 244
9.1.4 建立一个FAQ组件 245
9.2 存储模块 247
9.2.2 FaqRepository类 248
9.2.1 数据库图表 248
9.2.3 存储模块异常 253
9.3 管理模块 254
9.3.1 管理Servlet 255
9.3.2 主菜单 261
9.3.3 添加FAQ 264
9.3.4 删除一个FAQ 266
9.3.5 更新FAQ 271
9.4 Web访问模型 276
9.4.1 FaqServlet 277
9.4.2 查看一个FAQ 278
9.4.3 查看全部FAQ 279
9.4.4 一个查看内容的表格 280
9.4.5 查看纯文本 281
第10章 创建定制化标签 283
10.1 定制化标签的作用 283
10.2 标签库如何工作 284
10.3 标签库的描述文件 286
10.3.1 库元素 286
10.3.2 Tag元素 287
10.3.3 属性元素 288
10.4.1 标签处理器 289
10.4 API概述 289
10.4.2 帮助类 292
10.4.3 辅助类 293
10.5 标签库例子 294
10.6 内容替代 295
10.7 标签属性 297
10.8 内容转换 300
10.8.1 URL重写 301
10.8.2 HTML编码 303
10.9 彼此交互的标签 307
10.9.1 交互机制 307
10.9.2 大纲处理标签 309
10.10 控制流 316
10.10.1 条件化 317
10.10.2 重复操作 324
10.11 标签库的包装 339
第11章 XML与JSP 340
11.1 HTML的局限性 341
11.2 XML的兴起 342
11.3 XML的例子 343
11.4 XML的应用展望 345
11.4.1 XML语法 345
11.5 序 347
11.6 元素声明 348
11.7 声明规则 349
11.8 XML的其他组件 351
11.9 XML与JSP 351
11.9.1 面向Scripting的标签 351
11.9.2 XML标签 351
第12章 集成JSP应用程序 353
12.1 什么是WAR 353
12.1.1 WAR就是XML 354
12.1.2 WAR的开发 355
12.2.1 WAR的参考资料 356
12.2 WAR的技巧 356
12.2.2 制作集成描述器 360
12.3 关于WAR的小结 368
第13章 实现JSP一般任务 370
13.1 如何处理cookie 370
13.1.1 cookie管理 370
13.1.2 Cookie类 371
13.1.3 cookie的设置(例1) 372
13.1.4 检索Cookie(例2) 373
13.2.1 一个产生错误的页面 376
13.2 创建处理错误的页面 376
13.2.2 数据收集方法 377
13.2.3 发送电子邮件 381
13.2.4 错误处理页面 382
13.3 JSP和JavaSeript结合使用 385
13.4 建立交互性接口 389
13.4.1 提交用户请求 389
13.4.2 常用方法 390
13.4.3 表单例子 391
13.4.4 设置表单 392
13.4.5 文本及隐藏对象 393
13.4.6 文本域 393
13.4.8 选择框 394
13.4.7 单选框 394
13.4.9 复选框 395
13.4.10 表单源代码 395
13.5 使表单数据有效化 398
13.5.1 客户端和服务器端的有效化 398
13.5.2 服务器端的有效化(例子) 399
13.6 多重任务 404
13.6.1 确定最后修改的数据 404
13.6.2 执行系统命令 405
13.6.3 生成XML 406
14.1.1 BannerBean 408
第14章 JSP举例 408
14.1 旋转标题 408
14.1.2 使用BannerBean 409
14.2 一个随机引用的生成器 410
14.2.1 QuoteBean 410
14.2.2 使用QuoteBean 411
14.3 Tell a Friend!粘贴器 412
14.3.1 sticker 413
14.3.2 MailForm页 414
14.3.3 发送邮件 415
14.4.1 Whois客户服务系统 416
14.4 JSP Whois客户机 416
14.4.2 Whois协议 417
14.4.3 环境和设计思想 417
14.4.4 WhoisBea 417
14.4.5 构建客户服务前端 422
14.5 一个查看JSP源代码的按钮 423
14.5.1 显示源代码 423
14.5.2 该查看源代码方法的局限性 425
14.5.3 添加一个查看源代码按钮 425
14.5.4 使用一个标记查看源代码 426
第15章 网上书店实例 427
15.1.1 会员登录Java Bean 429
15.1 会员登录 429
15.1.2 会员登录htm与JSP 432
15.2 选书 435
15.2.1 选书JavaBeans 435
15.2.2 选书JSP 438
15.3 定单提交及查询 449
15.3.1 定单提交JavaBeans 450
15.3.2 定单提交JSP 455
附录A JSP API(Servlet 2.2 和JSP 1.1) 462
附录B 合并Java小程序(Applets) 484
附录C JavaServer PagesTM白皮书 496
附录D JSP网站参考 503