第1部分 Perl程序语言 2
第1章 Perl概述 2
1.1 关Perl语言 2
1.2 安装Perl 3
1.2.1 检查系统是否已经安装了Perl 3
1.2.2 在Windows 95/98/NT上安装Perl 4
1.2.3 在UNIX上安装Perl 5
1.3 编写第一个Perl程序 6
1.3.1 编辑程序 6
1.3.2 运行程序 7
1.3.3 Perl解释程序的工作 7
1.3.4 程序说明 8
1.4 Perl文档资料 9
1.4.1 使用perldoc命令访问文档资料 9
1.4.2 无法找到文档的原因 9
1.5 进一步了解Perl 10
1.5.1 Perl究竟是一种什么语言 10
1.5.2 关于开放源代码 11
1.5.3 关于Perl的开发 11
第2章 简单变量与操作符 13
2.1 标量常量 13
2.1.1 数字常量 13
2.1.2 字符串常量 14
2.2 标量变量 16
2.2.1 变量的定义 16
2.2.2 数字变量 17
2.2.3 字符串变量 17
2.2.4 一个特殊变量 18
2.3 表达式和运算符 18
2.3.1 基本运算符 19
2.3.2 数字运算符 20
2.3.3 字符串运算符 21
2.4 其他运算符 21
2.4.1 单参数运算符 22
2.4.2 递增和递减 22
2.4.3 尖括号运算符 23
2.4.4 其他赋值运算符 23
2.4.5 关于字符串和数字的一些说明 24
第3章 控制结构 25
3.1 语句块 25
3.2 选择性控制结构 26
3.2.1 基本的选择性控制语句 26
3.2.2 其他关系运算符 29
3.2.3 逻辑结果的判断 31
3.2.4 逻辑运算符 32
3.3 循环结构 33
3.3.1 使用while进行循环 34
3.3.2 使用for循环 35
3.4 其他流控制工具 36
3.4.1 奇特的执行顺序 36
3.4.2 语句控制 36
3.4.3 标号 37
3.4.4 退出Perl 38
第4章 列表与数组变量 39
4.1 给列表和数组赋值 39
4.1.1 给列表赋值 39
4.1.2 给数组赋值 40
4.2 从数组中取出元素 42
4.2.1 寻找结尾 42
4.2.2 关于上下文的说明 43
4.3 对数组进行操作 44
4.3.1 遍历数组 44
4.3.2 在数组与标量之间进行转换 45
4.3.3 给数组重新排序 46
4.3.4 拼接数组 47
4.3.5 使用堆栈形式修改数组 47
第5章 模式匹配 49
5.1 简单的模式 49
5.1.1 简单的模式匹配 49
5.1.2 匹配的规则 50
5.2 元字符 51
5.2.1 非输出字符 51
5.2.2 通配符 51
5.2.3 字符类 53
5.2.4 分组和选择 54
5.2.5 匹配的选项 55
5.3 替换与转换 56
5.3.1 替换 56
5.3.2 替换操作符的选项 58
5.3.3 转换 58
5.3.4 转换操作符的选项 58
第6章 关联数组 60
6.1 关联数组赋值 60
6.2 访问关联数组中的数据 61
6.3 列表与关联数组 63
6.4 关于关联数组的补充说明 63
6.4.1 测试关联数组中的关键字 64
6.4.2 从关联数组中删除关键字 64
6.5 使用关联数组进行操作 64
6.5.1 确定频率分布 65
6.5.2 在数组中寻找惟一的元素 65
6.5.3 寻找两个数组之间的交汇部分和不同部分 66
6.5.4 对关联数组进行排序 67
6.6 示例 67
第7章 函数 70
7.1 创建和调用子过程 70
7.1.1 定义一个子过程 70
7.1.2 调用一个子过程 71
7.1.3 返回子过程的值 72
7.1.4 参数传递 72
7.1.5 传递数组和关联数组 73
7.1.6 用别名传递数组参数 74
7.2 作用域 75
7.2.1 使用my操作符 76
7.2.2 my操作符的其他用法 77
7.3 示例 77
7.4 函数的局部变量 79
7.5 使Perl变得更加严格 81
7.6 递归函数 82
7.7 与正则表达式有关的函数 83
7.7.1 用index进行搜索 83
7.7.2 用rindex向后搜索 84
7.7.3 用substr分割标量 85
7.8 功能更强的print函数 85
第8章 文件操作与文件系统 88
8.1 打开文件 88
8.1.1 路径名 89
8.1.2 方便程序调试的措施 90
8.1.3 die函数 90
8.2 读写文件 91
8.2.1 读取文件 91
8.2.2 写入文件 93
8.3 自由文件、测试文件和二进制数据 94
8.3.1 自由文件句柄 94
8.3.2 二进制文件 95
8.3.3 文件测试运算符 95
8.4 DBM文件 96
8.4.1 需要了解的重点 97
8.4.2 遍历与DBM文件相连接的关联数组 98
8.5 文件与数据库 98
8.5.1 文本文件数据库的特点 98
8.5.2 将数据插入文本文件或从文本文件中删除数据 100
8.6 随机访问文件 101
8.6.1 打开文件进行读写操作 101
8.6.2 在读写文件中移动 101
8.7 锁定文件 102
8.7.1 锁定文件 102
8.7.2 Windows 95和Windows 98下的加锁问题 103
8.7.3 在其他地方使用文件锁的问题 104
8.8 文件属性 104
8.9 UNIX简介 105
8.9.1 UNIX系统简介 106
8.9.2 文件访问许可权的简要介绍 108
8.10 文件目录 110
8.10.1 获得目录列表 110
8.10.2 Globbing 111
8.11 目录操作 113
8.11.1 浏览目录 113
8.11.2 创建和删除目录 114
8.11.3 删除文件 114
第9章 引用结构 116
9.1 引用的基本使用 116
9.1.1 引用的概念 116
9.1.2 使用引用 116
9.1.3 使用反斜线(\)操作符使用引用 117
9.2 对各种结构的引用 119
9.2.1 对数组的引用 119
9.2.2 对关联数组的引用 121
9.2.3 对多维数组的引用 124
9.2.4 作为函数参数的引用 126
9.2.5 数组与子过程 129
9.2.6 文件句柄的引用 129
9.2.7 创建其他各种结构 130
9.3 使用引用来调试程序 131
第10章 包和模块以及面向对象编程简介 133
10.1 包简介 133
10.1.1 包的定义和引用 133
10.1.2 包和子过程 135
10.1.3 用包定义私有数据 135
10.1.4 关于包的其他内容 136
10.2 模块概述 136
10.2.1 读取有关模块的文档 137
10.2.2 出错信息 137
10.3 创建和导入模块 138
10.3.1 创建模块 138
10.3.2 导入模块 139
10.4 已安装模块简介 139
10.4.1 用于通信的Perl模块 140
10.4.2 使用English模块 140
10.4.3 diagnostics诊断模块 141
10.5 Perl的面向对象编程 141
10.5.1 创建类和函数 142
10.5.2 方法的输出和调用 145
10.5.3 重载 148
10.5.4 析构函数 148
10.5.5 继承 148
10.5.6 子类方法的重载 152
10.5.7 Perl类和对象的一些注释 153
第2部分 部分CGI程序设计 156
第11章 CGI概述 156
11.1 CGI(Common Gateway Interface) 156
11.2 选择合适的语言 157
11.3 说明 158
第12章 一个CGI程序 159
12.1 一个简单的CGI程序 159
12.1.1 分析hello.cgi 160
12.1.2 C语言编写的程序 161
12.2 输出 161
12.3 安装并运行CGI程序 162
12.3.1 为CGI配置服务器 163
12.3.2 在UNIX服务器上安装CGI 163
12.3.3 在Windows上安装CGI 164
12.3.4 运行CGI 165
12.4 HTML表单简介 165
12.4.1 <form>标签 165
12.4.2 <input>标签 165
12.4.3 提交表单 166
12.5 从浏览器接收表单输入 166
12.5.1 环境变量 166
12.5.2 GET与POST 168
12.5.3 输入编码 169
12.5.4 解析输入 169
12.6 一个简单的CGI 170
12.7 编程策略 171
第13章 HTML基础 173
13.1 HTML的基本元素 173
13.1.1 一个简单的HTML页面 173
13.1.2 HTML文件的构成 174
13.1.3 其他组成部分 176
13.2 HTML字体的设置 177
13.2.1 字体和字号的设置 177
13.2.2 字体颜色 179
13.3 背景图像 180
13.3.1 添加背景图像 180
13.3.2 改变背景颜色 180
13.4 HTML格式控制 181
13.4.1 对齐文字 181
13.4.2 预格式化文本 181
13.4.3 块引用 182
13.5 HTML表格 183
13.5.1 基本表格 183
13.5.2 复杂表格 184
第14章 CGI输出 186
14.1 HEAD和BODY:剖析服务器响应 186
14.1.1 一个简单的例子 186
14.1.2 http标题 187
14.1.3 回车符和新行符 188
14.2 CGI的输出格式化 189
14.2.1 MIME 189
14.2.2 Location 190
14.2.3 Status 192
14.2.4 其他标题 193
14.3 动态页面 196
14.3.1 使用程序库对CGI输出进行编码 196
14.3.2 显示当前的日期 197
14.3.3 Server—Side Includes 199
14.3.4 on—the—fly图形 201
14.4 “计数器”例子 202
14.4.1 计算访问次数 202
14.4.2 使用server—side includes的文本计数器 204
14.4.3 图形计数器 206
14.5 无解析的标题 211
第15章 CGI输入 212
15.1 有关背景 212
15.2 CGI如何进行输入工作 214
15.2.1 环境变量 214
15.2.2 编码对策 223
15.2.3 GET与POST 224
15.3 解析策略和工具 225
15.3.1 cgi—lib.pl 226
15.3.2 cgihtml 227
15.4 策略 232
15.5 一个例子:Guestbook 233
第16章 客户机/服务器 240
16.1 Client Versus Server 240
16.1.1 访问一个HTML文档 241
16.1.2 提交一个表单 242
16.1.3 访问一个CGI程序 242
16.1.4 重定向 243
16.1.5 验证 244
16.2 HTTP:Web服务协议 244
16.2.1 请求 245
16.2.2 应答 247
16.3 扩展Web服务器 249
16.4 扩展Web客户端 250
第17章 CGI编程策略与调试技术 252
17.1 范例 252
17.2 CGI策略 254
17.3 改善的Guestbook 256
17.3.1 改善方案 256
17.3.2 改善后的程序 258
17.3.3 HTML产生器 262
17.4 Practical Programming 264
17.4.1 一般性难点问题 264
17.4.2 UNIX文件许可和所有权 266
17.4.3 技巧 267
17.5 调试技术 270
17.5.1 一般调试方法 272
17.5.2 测试表单 274
17.5.3 Parrot:回应浏览器的请求 275
17.6 常见的错误 278
第18章 CGI安全 280
18.1 CGI安全问题概述 280
18.2 基本安全问题 281
18.2.1 操作系统 281
18.2.2 保护网络服务器的安全 281
18.3 编写安全的CGI程序 286
18.3.1 语言的危险 287
18.3.2 外壳的危险 288
18.4 安全传输 292
18.4.1 Java,CGI和安全传输 293
18.4.2 SSL 293
18.4.3 SHTTP 293
第19章 CGI应用实例 294
19.1 两个小程序 294
19.1.1 内容协商 294
19.1.2 重定向管理器 297
19.2 普通表单解析器 307
19.2.1 一个简单的解析器 307
19.2.2 可定制的解析器(form.cgi) 312
19.2.3 使用form.cgi作为Guestbook 316
第20章 CGI网关 318
20.1 使用目前的网络应用 318
20.1.1 使用C语言运行一个程序 318
20.1.2 在C中解析输出 320
20.1.3 使用Perl运行程序 321
20.1.4 在Perl里解析输出 322
20.1.5 Finger网关 322
20.1.6 Security 327
20.2 真正的Client/Server网关 327
20.2.1 网络编程 327
20.2.2 一个直接的Einger网关 328
20.3 E-mail网关 331
20.3.1 一个简单的mail程序 331
20.3.2 扩展邮件程序 334
第21章 数据库 338
21.1 什么是数据库 338
21.2 数据库实现方法 339
21.2.1 平面文件 339
21.2.2 文件系统 340
21.2.3 UNIX DBM 340
21.2.4 商用实现方法 342
21.3 在线录像库 342
21.3.1 数据库 342
21.3.2 查询引擎和注释 345
21.3.3 管理工具 351
21.3.4 评价 361
第22章 复杂表单及维持状态 362
22.1 策略 362
22.1.1 环境变量 363
22.1.2 隐藏HTML表单域 363
22.1.3 session文件 364
22.2 复杂表单 365
22.3 井字游戏 367
22.3.1 通用函数 368
22.3.2 使用URL传送状态 370
22.3.3 使用表单传送状态 374
22.4 在线课程目录应用 380
第23章 CGI扩展 390
23.1 HTML功能扩展 390
23.1.1 Client—Side图像 390
23.1.2 框架 392
23.1.3 Client—Side Pull 396
23.1.4 其他功能扩展 398
23.2 Server—Side Push 399
23.2.1 server—side push概述 399
23.2.2 动画 401
23.3 文件上载 405
23.3.1 文件上载方法 405
23.3.2 解析文件上载 406
23.4 使用Cookies保持状态 409
第24章 图像 411
24.1 服务器与客户端对处理图像链接的作用 411
24.2 使用表单进行图像链接 412
24.3 ISMAP 417
24.3.1 一个简单的图像链接CGI程序 418
24.3.2 NCSA图像链接 420
第3部分 ASP程序设计 430
第25章 ASP简介 430
25.1 认识ASP 430
25.1.1 Active Server Pages简介 430
25.1.2 动态网页技术 431
25.2 ASP的特点和功能 432
25.2.1 ASP的特点 432
25.2.2 ASP的新功能 433
25.3 ASP的运行环境 434
25.3.1 Windows NT下的运行环境 437
25.3.2 Windows 95/98下的运行环境 438
第26章 创建第一个ASP页 440
26.1 ASP的脚本语言 440
26.1.1 设置主脚本语言 440
26.1.2 在服务器上使用VBScript和JScript 441
26.1.3 包含注释 441
26.1.4 大小写敏感性 442
26.2 改变ASP默认的脚本语言 442
26.3 简单的ASP程序 444
26.3.1 加入Script命令 445
26.3.2 合成HTML和脚本命令 445
26.3.3 使用ASP指令 446
26.3.4 脚本中的空白字符 447
26.3.5 一个ASP程序 447
第27章 ASP脚本语言VBScrip基础 452
27.1 VBScript的常量变量及集合 452
27.1.1 常量 452
27.1.2 变量 453
27.1.3 集合 453
27.2 作用域 456
27.2.1 变量作用域 456
27.2.2 为变量赋予会话或应用程序作用域 457
27.2.3 设置对象作用域 458
27.3 VBScript的基本语句 460
27.3.1 条件语句 460
27.3.2 循环语句 462
27.4 VBScript的函数与子过程 464
27.4.1 函数 464
27.4.2 子过程 465
27.5 包含文件 467
27.5.1 使用Virtual关键字 467
27.5.2 使用File关键字 467
27.5.3 被包含文件的位置 467
27.5.4 包含文件的提示和警告 467
第28章 ASP的内建对象 469
28.1 ASP的几个基本概念 469
28.2 内建对象Request 470
28.2.1 Form集合 470
28.2.2 QueryString集合 471
28.2.3 Cookies 471
28.2.4 ServerVariables集合 473
28.2.5 使用HTML表格 474
28.3 内建对象Response 476
28.3.1 属性 477
28.3.2 方法 479
28.3.3 集合 481
28.3.4 关于动态通道 481
28.3.5 向浏览器传送脚本 482
28.3.6 一个实例 483
28.4 内建对象Application和Session 484
28.4.1 Application对象 485
28.4.2 Session对象 487
28.4.3 Global.asa文件 488
28.4.4 管理会话 489
28.4.5 一个实例 495
28.5 内建对象Server 497
28.5.1 属性 497
28.5.2 方法 498
第29章 常用的ActiveX组件 500
29.1 关于ActiveX组件 500
29.2 几种常用的ActiveX组件 502
29.2.1 Ad Rotator组件 502
29.2.2 Browser Capabilities组件 504
29.2.3 Content Linking组件 505
29.2.4 Database Access组件 506
29.2.5 File Access组件 508
第30章 访问数据库 513
30.1 数据库查询语言SQL 513
30.1.1 SELECT语句 513
30.1.2 其他常用SQL语句 516
30.1.3 数据定义语言 518
30.2 访问数据库 518
30.2.1 创建ODBC DSN文件 519
30.2.2 连接数据库 520
30.2.3 用Connection对象执行查询 521
30.2.4 使用Recordset对象处理结果 522
30.2.5 检索记录 522
30.2.6 用Command对象改善查询 523
30.2.7 结合HTML表格和数据库访问 524
30.2.8 管理数据库连接 525
30.2.9 共享连接 526
30.2.10 关闭连接 526
第31章 调试ASP脚本 527
31.1 ASP的调试脚本 527
31.2 调试方法 528
31.2.1 启用调试 528
31.2.2 错误调试技术 528
第32章 ASP的安全问题 530
32.1 IIS方面的安全问题 530
32.1.1 漏洞介绍 530
32.1.2 解决途径 531
32.2 Web服务器提供的防护方法 532
32.2.1 NTFS权限 532
32.2.2 维护Global.asa的安全 533
32.2.3 Web服务器权限 533
32.2.4 脚本映射文件 533
32.2.5 Cookie安全性 533
32.2.6 使用身份验证机制保护被限制的ASP内容 534
32.2.7 保护元数据库 534
32.2.8 使用SSL维护应用程序的安全 534