前言 1
第一章 分布式系统和网络互联技术 7
多层体系结构 8
什么是层 8
客户机-服务器模式的僵硬性 9
大规模的分布式系统 9
Internet应用程序 11
真正理解HTML 12
用户脚本 12
了解Web用户的能力 12
Java小应用程序 15
ActiveX控件 15
XML 16
建立定制Web客户 16
使用应用程序服务器 17
理解通用网关接口 17
在应用程序服务器中运行软件 18
使用应用程序服务器的资源 19
Business对象的优点 20
了解商务对象层 20
定义商务规则 20
Business对象在分布式系统中的地位 21
访问数据层和后端服务 23
对数据访问的理解 23
事务处理 23
服务器数据的作用 25
了解XML 的功能 25
小结 26
在软件之间调节数据 26
第二章 介绍Apache HTTP服务器 27
编译和安装Apache 28
为CGI配置Apache 33
编辑httpd.conf 33
设置Document Root 34
配置目录选项 35
允许服务器端包含(Server-Side Include) 36
在Document Root中使用CGI 37
将CGI作为文件类型来使用 38
使用服务器端包含 39
第一次运行Apache 40
在系统启动时运行Apache 42
对Apache的剖析 43
理解HTTP在Web开发中的作用 44
请求一个HTML页 44
接收HTML页 46
向服务器发送Web表单 46
发送和接收cookie 49
处理CGI脚本 52
理解CGI环境 53
创建一个规范的CGI脚本 53
创建脚本 54
对核心CGI变量的详细介绍 56
小结 58
第三章 在Linux中用Perl实现CGI 59
为什么要使用Perl 59
Perl的基本知识 60
运行Perl脚本 60
变量 61
一个例子:日志文件 75
模式匹配和正则表达式 81
在日志分析程序中使用模式匹配 84
引用 91
在日志分析程序中使用引用 94
CGI的另一面:用户交互 101
包、对象和模块 104
下载并使用CGI模块 107
完成日志分析程序 112
小结 120
将HTML和CGI分离开 121
第四章 将内容、逻辑与对象分开 121
改变文本文件需要一个程序设计员 122
重新设计需要重新编码 122
克服常见的Web站点问题 123
使用服务器端包含 123
将错综复杂的站点结构变得更加简单 124
基于上下文内容动态更新内容 124
内容创建对象 124
连接内容 125
自动化的页眉和页脚 125
自确定的定位(导航)控件 125
处理文件系统结构 126
编写对象 127
创建Header Footer Perl对象 127
理解Header Footer方法 128
为Header Footer.pm编写代码 130
创建Navigator Perl对象 138
理解Navigator方法 138
编写Navigator代码 139
设置Document Root 147
创建一个Navigator/HeaderFooter实例 147
编写代码 149
配置Display对象 150
写入到HTTP流 152
评价脚本 155
创建Content Perl对象 156
理解Content方法 156
编写Content对象代码 157
创建一个Template Perl对象 162
揭示Template方法 163
创建更多的灵活性 163
编写Template代码 164
创建Producer Perl对象 172
理解和扩展Producer方法 172
编写Producer对象代码 173
创建一个Producer/Template实例 175
编写代码 175
创建一个在线编目系统 181
向用户致意 181
介绍产品分目 182
创建一个分目引擎 183
显示一个单独的产品 183
查明附带的CD-ROM中的文件 183
找出解决方案 184
开发代码 184
扩展这个系统 198
小结 198
第五章 用XML创建结构优良的对象 199
表述信息 199
从GML到HTML 200
XML的鼻祖 200
HTML所存在的问题 201
HTML和样式表 201
从HTML转向XML 204
序言 205
文档类型定义 207
一般的实体 207
记号 209
元素 210
属性 214
参数型实体 218
INCLUDE和IGNORE 219
CDATA标记段 220
XSL和Xlink:新兴的标准 220
小结 222
第六章 用CGI应用程序服务器处理XML 223
安装解析器模块 223
关于解析器 224
对解析器进行初始化 225
把标记翻译成实际的动作 227
本章的项目:设计一个把XML转换成HTML的翻译器 230
使用处理程序 230
处理程序与Subs的对比 234
XML文件 234
Memo.xml 235
Style.xml 237
开始编写转换脚本 239
initStyles方法 240
style-start-handler方法 241
style-end-handler方法 242
style-char-handler方法 243
处理源文件 244
soure-start-handler方法 245
source-end-handler和source-char处理程序 246
创建一个脚本 247
处理属性 248
修改样式处理程序 251
修改源处理程序 253
访问属性值 255
proc-handler和sub-att-value方法 257
连接IDREF和ID属性 259
Attlist和Element处理程序 261
实现文本置换 262
实现Final处理程序 264
小结 273
第七章 创建基于客户的Web内容管理器 275
基于XML的留言板 275
MESSAGE-1.xml 276
style-MESSAGE.xml 278
应用程序用到的其他文件 282
把XML转换成HTML表单 283
枚举输入 286
添加选择框 289
修改XMLStyle模块 290
from-directory方法 292
from-file方法 294
form-att-type方法 296
必需元素内容 297
传送文档的结构 299
edit.cgi脚本 305
form2xml.cgi脚本 307
对参数进行排序 308
删除不必要的元素 310
生成XML 312
Admin程序 316
admin.cgi脚本 316
查看器程序 320
小结 324
第二部分 超越今天的Internet模型 325
超越客户/服务器时代 327
第八章 用Linux提供XML服务 327
查看Internet应用程序 327
引入Internet 328
通向电子商务的条条道路 328
需求分析 329
获得一种解决方法 329
完全使用另外一种方法 331
查看目前企业版XML模型 332
了解无状态问题 333
XSL转换 333
跨应用程序通讯 333
单向与固定状态 334
HTTP/CGI模型的缺点 334
通向真正交互性的道路 334
XML应用程序服务器 335
序列化和共享XML 335
理解进程 337
安装XML应用程序服务器 338
较大的图片 338
安装软件 339
测试XAS设置 340
小结 341
第九章 在Linux 上开发Java小应用程序 343
Java是怎样工作的 343
Java开发软件包 344
安装Blackdown JDK 345
检查JDK 346
进行安装测试 346
HelloEarl探秘 347
从应用程序到小应用程序 349
接口 352
把所学到的全部用起来:Life游戏 356
关于这个游戏 356
Life小应用程序概述 356
Life.java 357
init方法:获取HTML参数 358
异常处理 359
initImage方法 362
initAWTComponents方法 363
实现Life逻辑的方法 365
Java线程 368
MyCanvas类 371
小结 374
第十章 创建Java/XML网络应用程序 377
应用程序概述 377
使用XML的应用程序服务器 378
创建XAS客户程序 378
XASReceiver接口 380
下载和安装Aeifred 381
AElfred XML解析器 381
XMLParser类 382
XmlHandler接口和HandlerBase类 383
开始小应用程序的编写 383
NetApp.Java 383
NetApp类的init方法 386
InitAWTComponet方法 388
XASReciever方法 391
Hub接口方法 392
myHandler内部类 393
创建组件对象 397
Chat组件 398
Chat构造函数 400
InitAWTComponets 400
actionPerformed方法 402
refeshChatterList XASReceiver接口方法 402
XML Handler方法 404
Whiteboard组件 404
generateGraphics和doClear方法 406
Whiteboard的构造函数 406
MouseEvent 处理过程 408
SendPointVector方法 410
XASReveiver方法 411
XML处理程序方法 411
drawRemote方法 412
paint方法 413
启动网络应用程序 415
小结 417
处理应用程序的错误 419
第十一章 采用错误处理保护网站 419
CGI:Carp API简介 420
用Apache处理错误 420
理解ErrorDocument的指令 421
实现自定义错误页 421
错误处理体系结构 422
分析Judy Jumpsuit事例 422
环境分析 423
设计一个错误处理方案 424
编写错误代码 425
增加错误情况 425
从消息中提取错误代码 425
一个简单的Perl模块 426
使模块与信息分离 427
实现错误消息 427
编写双重错误处理程序 428
使用方法 429
编写对象代码 430
写一个HTML错误脚本 438
扩展商品目录网站 445
创建顾客表单 446
获取顾客数据 448
伸出你的网络触角 453
为什么捕获特殊字符 453
小结 454
第十二章 部署Linux Web应用程序 455
这不是你家的Web站点 455
采取正确的第一步 456
测试和调试 457
检查HTTP报头 457
采取正确的第二步 457
理解cookie的使用 460
性能监控 463
可用性和浏览器的兼容性 464
规划资源消耗 465
规划Intranet应用程序 465
规划商务应用程序 466
选定服务器的配置 469
采用多个服务器分配负载 469
负载平衡工具软件 469
对负载平衡方案缺陷的理解 471
负载平衡的优点 471
了解伸缩性问题 473
小结 473
附录 CD-ROM的内容 475
每一章的示例程序 475
XML应用程序服务器 475
Microstar AElfred 解析器 476
Perl模块 476
开放源代码的Kaffe Java虚拟机 476
PostgreSQL6.5 477