第1章 Servlet概论 1
1.1 用JavaServlet实现动态Web连接 1
1.1.1 JavaServlet的功能特性 2
1.1.2 JavaServlet的优点 2
1.1.3 JavaServlet的安全性 3
1.1.4 JavaServlet的管理 3
1.2 JavaServlet与CGI的比较 3
1.3 用JavaServlet扩展服务器功能 4
1.4 JavaServlet的应用 4
1.5 运行JavaServlet的需求 5
1.6 本章小结 5
第2章 服务器的安装与配置 6
2.1 JavaWebServer2.0 6
2.1.1 访问服务器 6
2.1.2 系统管理工具 7
2.1.3 WebService管理 9
2.2 JRun服务器 18
2.2.1 JRun结构 18
2.2.2 JRun与Web服务器的联系 19
2.2.3 Linux平台下JRun的安装 19
2.3 其他服务器的安装与配置 20
2.3.1 Apache+Tomcat 20
2.3.2 IIS+resin 21
2.3.3 WebSphere 22
2.4 本章小结 25
第3章 JavaServlet程序的编写 26
3.1 Servlet接口 26
3.1.1 Servlet接口的重要性 26
3.1.2 处理请求方法 27
3.1.3 Servlet实例的数量 27
3.1.4 Servlet的生命周期 28
3.2 HelloWorld 30
3.3 使用JDK编译Servlet程序 35
3.3.1 JDK1.2的程序扩展库 35
3.3.2 编译时的小技巧 36
3.4 用Jbuilder开发Servlet程序 36
3.5 两个基于HTTP的简单实例 37
3.5.1 实例一:显示请求信息 37
3.5.2 实例二:使用IO流 41
3.6 URL到Servlet的映射 43
3.6.1 使用URL路径 43
3.6.2 映射说明 43
3.7 本章小结 44
第4章 请求与响应 45
4.1 客户端与服务器交互 45
4.2 请求首部 46
4.2.1 请求首部概述 46
4.2.2 读取请求首部 47
4.2.3 ServletUtilities 47
4.2.4 输出全部请求首部 50
4.3 CGI变量 51
4.3.1 标准CGI变量 52
4.3.2 实例:读取CGI变量 53
4.4 响应状态 55
4.4.1 设置状态码 55
4.4.2 HTTP1.1状态码及其含义 56
4.4.3 实例:搜索引擎 58
4.4.4 运行结果 62
4.5 响应首部 63
4.6 实例:产生质数 65
4.6.1 实例的功能 65
4.6.2 PrimeNumbers.java 65
4.6.3 PrimeList.java 68
4.6.4 运行结果 70
4.7 本章小结 72
第5章 使用ServerSideIncludes 73
5.1 Servlet标记 73
5.2 SSI实例 74
5.3 include标记 78
5.3.1 使用virtual关键字 78
5.3.2 使用file关键字 78
5.3.3 实例:包含greeting.shtml文件 78
5.3.4 include标记的作用 79
5.4 使用显示模板 79
5.4.1 default.template文件 79
5.4.2 default.definitions文件 81
5.4.3 default.template的使用规则 82
5.4.4 default.definitions的使用规则 82
5.5 本章小结 83
第6章 Servlet链 84
6.1 Servlet链概述 84
6.2 用Servlet别名设置Servlet链 85
6.3 MIME类型与Servlet 88
6.3.1 用MIME类型设置Servlet链 89
6.3.2 在HTTP请求中设置Servlet链 90
6.4 Servlet链的安全性 90
6.5 本章小结 90
第7章 会话跟踪 91
7.1 会话跟踪介绍 91
7.2 会话对象与用户 92
7.2.1 会话生存期 92
7.2.2 会话失效 93
7.2.3 会话交换与持久性 93
7.3 会话跟踪实例 94
7.4 Cookie 97
7.4.1 Cookie的利弊 97
7.4.2 ServletCookieAPI 97
7.4.3 在响应首部中设置Cookie 99
7.4.4 读取Cookie 99
7.4.5 一些微型的Cookie工具 99
7.4.6 实例:自定义的搜索引擎 100
7.5 URLRewriting技术 104
7.6 HttpSessionBindingListener 107
7.7 本章小结 111
第8章 安全性 111
8.1 Web安全 111
8.2 加强JavaWeb服务器的安全性 112
8.3 JavaWeb服务器的安全特性 112
8.3.1 面向HTTP安全支持 113
8.3.2 基于JavaWeb服务器的安全特性 114
8.3.3 与UNIX平台相关的安全特性 115
8.3.4 安全套接层(SSL) 116
8.4 实例:使用基本认证方式 116
8.4.1 在Servlet中使用安全认证 116
8.4.2 使用访问控制列表(ACL)保护资源 119
8.5 表单认证 122
8.5.1 login.htm文件 122
8.5.2 程序清单 124
8.5.3 程序分析 127
8.6 本章小结 127
第9章 Applet与Servlet的通信 128
9.1通过HTML页面传递Applet参数 128
9.1.1 方法的具体实现 128
9.1.2 传递参数方法的优缺点 130
9.2 用GET方法与Servlet通信 131
9.2.1 处理方法 131
9.2.2 应用举例 131
9.3 用POST方法与Servlet通信 134
9.3.1 处理方法 134
9.3.2 应用举例 134
9.4 使用对象序列化技术 136
9.4.1 对象序列化 136
9.5 本章小结 139
第10章 Java数据库连接 140
10.1 什么是JDBC 140
10.2 JDBC驱动程序的四种类型 140
10.2.1 JDBC-ODBC桥 140
10.2.2 Java到本地API 141
10.2.3 网络纯Java驱动程序 141
10.2.4 本地协议纯Java驱动程序 141
10.2.5 各驱动程序的应用场合 142
10.3 JDBCAPI 142
10.3.2 创建表 144
10.3.3 JDBC语句对象 145
10.3.4 ResultSet 147
10.3.5 PreparedStatement 150
10.3.6 使用联合(Joins) 152
10.3.7 事务处理 153
10.3.8 已存储过程 157
10.4 本章小结 159
第11章 使用JDBC和连接池 160
11.1 JDBC实例 160
11.1.1 使用JDBC的四个基本步骤 160
11.1.2 DBServlet 160
11.1.3 创建ODBC数据源 170
11.1.4 DBServlet运行结果 173
11.2 使用第三方驱动程序 174
11.2.1 设置CLASSPATH 174
11.2.2 使用方法 176
11.3 自定义JDBC工具程序 176
11.3.1 DriverUtilities 177
11.3.2 DBResults 178
11.3.3 DatabaseUtilities 182
11.3.4 综合应用 186
11.3.5 运行结果 191
11.4 分页显示记录 192
11.4.1 使用DBServlet分页 192
11.4.2 一般的记录分页实例 195
11.5 使用预编译语句 199
11.6 连接池 202
11.6.1 连接池的实现 203
11.6.2 应用举例 207
11.7 本章小结 212
第12章 Servlet和RMI 213
12.1 RMI概述 213
12.2 RMI实例介绍 214
12.3 定义远程接口 214
12.4 远程接口的实施 217
12.5 创建根与干 222
12.6 编写使用远程对象的Servlet 222
12.6.1 客户Servlet 222
12.6.2 DatabaseServlet 223
12.6.3 UserCreateServlet 224
12.6.4 其他Servlet 225
12.7 客户端程序 227
12.7.1 客户代理对象 227
12.7.2 客户端Applet 230
12.7.3 执行程序 236
12.8 RMI的替选方案 237
12.9 本章小结 237
第13章 综合实例 238
13.1 制作一个日历 238
13.2 留言簿 253
13.3 网络BBS论坛 268
13.4 网上书店 301
13.5 收发电子邮 319
13.5.1 阅读邮件 320
13.5.2 发送邮件 331
13.6 本章小结 338
附录A 汉字问题的分析及解决 339
A.1汉字编码的常识 339
A.1.1 字节和UNICODE 340
A.1.2 UTF-8 340
A.1.3 String和byte 340
A.1.4 I/O流 340
A.2 中文问题的初步认识 341
A.3 中文问题的解决办法 342
A.3.1 输出中文到网页中 342
A.3.2 从参数中读取中文 343
A.3.3 操作数据库时的中文问题 343
附录B JavaServletAPI2.3 345
B.1javax.Servlet包 345
B.1.1 简要说明 345
B.1.2 javax.Servlet.Config 346
B.1.3 javax.Servlet.Filter 346
B.1.4 javax.Servlet.FilterChain 347
B.1.5 javax.Servlet.FilterConfig 348
B.1.6 javax.Servlet.GenericServlet 348
B.1.7 javax.Servlet.RequestDispatcher 350
B.1.8 javax.Servlet.Servlet 351
B.1.9 javax.Servlet.ServletConfig 352
B.1.10 javax.Servlet.ServletContext 352
B.1.11 javax.Servlet.ServletContextAttributeEvent 356
B.1.12 javax.Servlet.ServletContextAttributesListener 356
B.1.13 javax.Servlet.ServletContextEvent 357
B.1.14 javax.Servlet.ServletContextListener 357
B.1.15 javax.Servlet.ServletException 358
B.1.16 javax.Servlet.ServletInputStream 359
B.1.17 javax.Servlet.ServletOutputStream 359
B.1.18 javax.Servlet.ServletRequest 361
B.1.19 javax.Servlet.ServletRequestWrapper 364
B.1.20 javax.Servlet.ServletResponse 365
B.1.21 javax.Servlet.ServletResponseWrapper 367
B.1.22 javax.Servlet.SingleThreadModel 368
B.1.23 javax.Servlet.UnavailableException 368
B.2 javax.Servlet.http包 369
B.2.1 javax.Servlet.http包的类、接口等 369
B.2.2 javax.Servlet.http.Cookie 370
B.2.3 javax.Servlet.http.HttpServlet 372
B.2.4 javax.Servlet.http.HttpServletRequest 375
B.2.5 javax.Servlet.http.HttpServletRequestWrapper 378
B.2.6 javax.Servlet.http.HttpServletResponse 379
B.2.7 javax.Servlet.http.HttpServletResponseWrapper 384
B.2.8 javax.Servlet.http.HttpSession 384
B.2.9 javax.Servlet.http.HttpSessionActivationListener 386
B.2.10 javax.Servlet.http.HttpSessionAttributesListener 387
B.2.11 javax.Servlet.http.HttpSessionBindingEvent 387
B.2.12 javax.Servlet.http.HttpSessionBindingListener 388
B.2.13 javax.Servlet.http.HttpSessionContext 389
B.2.14 javax.Servlet.http.HttpSessionEvent 389
B.2.15 javax.Servlet.http.HttpSessionListener 390
B.2.16 javax.Servlet.http.HttpUtils 390