第一部分 Servlet基础 2
第1章 Web应用和模型视图控制器设计模式 2
1.1 模型视图控制器设计模式 2
1.2 服务器端的MVC实现 2
1.2.1 作为MVC控制器的Servlet 3
1.2.2 JSP作为MVC视图 3
1.3 小结 4
第2章 Servlet概述和结构 5
2.1 转向服务器端的Java 5
2.2 Java Servlet的定义 5
2.3 Java Servlet的实际应用 5
2.4 Java Servlet的替代品 6
2.4.1 通用网关接口 6
2.4.2 专属API 7
2.4.3 服务器端的JavaSeript 7
2.4.4 Microsoft的ASP 7
2.5 使用Java Servlet的理由 7
2.5.1 有效性 8
2.5.2 稳定性 8
2.5.3 可移植性 8
2.5.4 健壮性 8
2.5.5 可扩充性 8
2.5.6 安全性 8
2.6 Java Servlet的结构 8
2.6.1 GenericServlet与HttpServlet 9
2.7 小结 11
第3章 Servlet基础知识 12
3.1 Servlet的生命周期 12
3.1.1 init()方法 12
3.1.2 service()方法 12
3.1.3 destroy()方法 13
3.2 基本的Servlet 13
3.2.1 BasicServlet源码 13
3.3 剖析BasicServlet 14
3.3.1 BasicServlet的哪一部分符合servlet框架要求 15
3.3.2 BasicServlet强制改变的方法 15
3.4 小结 17
第4章 Servlet与HTML 18
4.1 在Servlet中接收表格数据 18
4.1.1 对GET和POST请求提供服务 18
4.1.2 FormServlet怎样工作 22
4.2 小结 23
第5章 Servlet会话 24
5.1 什么是会话跟踪 24
5.2 使用隐藏的表格字段 24
5.3 使用Cooie 27
5.4 URL重写 31
5.5 利用Servlet API进行会话跟踪 32
5.6 小结 38
第6章 HTTP隧道 39
6.1 什么是HTTP隧道 39
6.2 对象的串行化处理 39
6.3 创建HTTP隧道客户机 45
6.4 创建一个HTTP隧道的Servlet 50
6.5 一个实际的HTTP隧道的例子 52
6.5.1 OrderStatusApplet 53
6.5.2 OrderStatusServlet 58
6.7 Applet与Servlet之间进行通信的优缺点 61
6.7 小结 61
第7章 Servlet、JDBC以及Servlet之间的通信 63
7.1 什么是JDBC 63
7.2 两层与三层数据库访问模型 64
7.3 JDBC驱动程序类型 65
7.3.1 JDBC-ODBC桥 65
7.3.2 Native-API 65
7.3.3 JDBC-Net 66
7.3.4 固有的协议 67
7.4 JDBC基础知识 67
7.4.1 安装和设置JDBC驱动程序 67
7.4.2 建立数据库连接 69
7.4.3 执行基本的SQL命令 69
7.4.4 把数据插入表中 72
7.4.5 从数据库表中读取数据 75
7.4.6 更新数据库表 79
7.4.7 从数据库表中删除数据 81
7.5 一个基本的JDBC Servlet 81
7.6 JDBC连接池 85
7.7 Servlet之间的通信 96
7.8 小结 102
第8章 Servlet与JavaMail 103
8.1 JavaMail与Internet E-mail 103
8.1.1 JavaMail服务 103
8.2 准备使用JavaMail 103
8.3 一个JavaMail的例子 104
8.4 在Servlet中使用JavaMail 107
8.5 小结 111
第9章 Servlet的安全性 112
9.1 安全性介绍 112
9.2 采用自己的安全方式 112
9.3 基本认证 115
9.4 摘要认证 116
9.5 安全套按字层 116
9.6 小结 117
第10章 Servlet与XML 118
10.1 XML与Java 119
10.2 使用SAX API 119
10.3 在Servlet中使用XML 124
10.4 小结 127
第11章 Servlet与LDAP 128
11.1 目录概述 128
11.1.1 属性 129
11.1.2 规范名 129
11.2 LDAP 129
11.3 JNDI 129
11.4 使用JNDI访问LDAP 130
11.5 安装Netscape目录服务器 130
11.5.1 建立连接 132
11.5.2 检索LDAP服务器 133
11.5.3 把一个对象加到LDAP服务器中 136
11.5.4 删除一个对象 138
11.5.6 修改存储在LDAP中的信息 139
11.6 从Servlet中访问LDAP 146
11.7 小结 150
第12章 Servlet和企业JavaBeans 152
12.1 什么是企业JavaBeans 152
12.2 EJB术语 153
12.3 安装JRun 153
12.4 企业JavaBeans 153
12.4.1 接口与类 154
12.4.2 命名惯例 154
12.5 会话Bean 155
12.5.1 会话Bean的状态概念 155
12.5.2 会话Bean的接口与类 156
12.5.3 用法描述器 160
12.5.4 会话Bean的客户机 163
12.5.5 会话Bean的生命周期 164
12.6 实体Bean 165
12.6.1 谁维护持久性 165
12.6.2 实体Bean的接口与类 166
12.6.3 用法描述器 173
12.6.4 实体Bean的客户机 174
12.6.5 实体Bean的生命周期 175
12.7 在应用服务器中使用EJB 175
12.7.1 打包成.jar文件 175
12.7.2 使用.jar文件 176
12.7.3 查看可用的JavaBean 177
12.8 作为EJB客户机的Servlet 177
12.9 小结 180
第13章 Servlet控制器 181
13.1 什么是控制器 181
13.2 Servlet控制器 181
13.3 Seveice接口 184
13.4 一个服务的例子 185
13.5 小结 187
第二部分 JSP基础 190
第14章 JSP概述与结构 190
14.1 什么是JSP 190
14.2 JSP的组成 191
14.2.1 指令 191
14.2.2 标准动作 193
14.2.3 隐含的对象 193
14.2.4 JSP脚本 194
14.3 小结 197
第15章 JSP的隐含对象 198
15.1 什么是隐含对象 198
15.2 request对象 199
15.3 response对象 201
15.4 pageContext对象 201
15.5 session对象 201
15.6 application对象 203
15.6.1 测试JSP 205
15.7 out对象 206
15.8 config对象 208
15.9 page对象 208
15.10 exception对象 208
15.11 小结 209
第16章 JSP的标准动作 210
16.1 什么是标准动作 210
16.2 JavaBean的标准动作 210
16.2.1 <jsp:useBean>标准动作 210
16.2.2 <jsp:setProperty>标准动作 211
16.2.3 <jsp:getProgerty>标准动作 211
16.2.4 一个使用JavaBean的JSP例子 212
16.3 其他标准动作 215
16.3.1 <jsp:param>标准动作 215
16.3.2 <jsp:include>标准动作 215
16.3.3 <jsp:forward>标准动作 220
16.3.4 <jsp:plugin>标准动作 224
16.4 小结 224
第17章 使用JavaBean和JSP范围 225
17.1 JavaBean计数器 225
17.2 page范围 226
17.3 request范围 227
17.4 session范围 229
17.5 application范围 230
17.6 小结 232
第18章 JSP错误处理 233
18.1 JSP翻译时错误 233
18.2 JSP请求时错误 233
18.2.1 创建JSP错误处理页面 233
18.2.2 使用JSP错误处理页面 235
18.3 小结 238
第19章 JSP标记符库 239
19.1 JSP惯用标记符 239
19.2 使用标记符库 239
19.2.1 创建一个标记符库描述器 240
19.2.2 在Web应用中使用标记符处理程序 241
19.2.3 把taglib项加到Web应用中 241
19.2.4 把taglib指令加到ISP中 241
19.3 开发JSP惯用标记符处理程序 242
19.3.1 没有代码体的标记符 243
19.3.2 一个没有代码体的标记符的例子 243
19.3.3 具有代码体的标记符 246
19.3.4 一个具有代码体的标记符的例子 247
19.3.5 带有属性的标记符 250
19.4 小结 252
第三部分 Servlet和JSP Web应用 254
第20章 目录案例研究 254
20.1 目录应用的基本要求 254
20.2 模型 254
20.2.1 购物车 257
20.3 视图 260
20.3.1 目录的页面布局 260
20.3.2 索引视图 263
20.3.3 电影清单视图 265
20.3.4 购物车视图 266
20.3.5 结帐视图 267
20.4 控制器 268
20.4.1 ListMovies服务 269
20.4.2 AddToCart服务 271
20.4.3 EmptyCart服务 273
20.4.4 CheckOut服务 274
20.5 使用联机目录 274
20.6 小结 275
第21章 LDAP Web客户机 276
21.1 目录应用的基本要求 276
21.2 模型 276
21.3 视图 276
21.3.1 目录的页面布局 277
21.3.2 索引视图 279
21.3.3 目录视图 280
21.3.4 增加视图 281
21.4 控制器 283
21.4.1 LDAPDirectory服务 283
21.4.2 LDAPInsert服务 285
21.4.3 LDAPDelete服务 286
21.5 使用ADAP应用 287
21.6 小结 288
第22章 股票交易 289
22.1 股票交易应用的基本要求 289
22.2 模型 289
22.3 视图 292
22.3.1 股票交易的页面布局 292
22.3.2 索引视图 294
22.3.3 询价视图 295
22.3.4 买进/抛售视图 296
22.4 控制器 298
22.4.1 GetQuote服务 298
22.4.2 Buy服务 300
22.4.3 Sell服务 302
22.5 使用股票交易应用 305
22.6 小结 306
第23章 使用WAP开发无线应用 307
23.1 WAP的历史:过去、现在和未来 307
23.1.1 过去:手持设备标记语言 307
23.1.2 现在:WAP冲击市场 307
23.1.3 将来:WAP1.2和更新版本 308
23.2 为什么选用WAP 309
23.2.1 屏幕大小的考虑 309
23.2.2 网络考虑 310
23.2.3 带宽考虑 310
23.3 WAP的结构 310
23.4 仿真器、浏览器和开发工具 311
23.4.1 联机仿真器 311
23.4.2 WinWAP浏览器 312
23.4.3 仿真器和开发工具 313
23.4.4 PDA WAP浏览器 313
23.4.5 应用服务器 313
23.4.6 建议的参考信息源 313
23.5 小结 314
第24章 WML/WMLScript开发 315
24.1 无线标记语言 315
24.1.1 WML语言的基础知识 315
24.2 一个WML例子 318
24.3 WMLScript 321
24.3.1 从WML中调用WMLScript 321
24.3.2 WMLScript语言基础知识 321
24.3.3 运算符 322
24.3.4 语句 322
24.3.5 标准库函数 323
24.3.6 WMLScript举例 324
24.4 使用servlet开发无线应用 326
24.4.1 配置服务器中的MIME类型 327
24.4.2 一个速成的”Hello World! W ML Servlet 327
24.4.3 同时支持多种设备 328
24.4.4 维护XML站点 328
24.5 小结 329
第四部分 Servlet和JSP Web应用 332
附录A Web应用和Serelet引擎配置 332
附录B javax.servlet软件包 339
附录C javax.servlet.http软件包 367
附录D javax.servlet.jsp软件包 393
附录E javax.servlet.jsp.tagext软件包 415
附录F 无线标记语言WML 443
附录G WMLScript 445