第1章 ASP基础知识与入门 1
1-1 什么是ASP 1
1-2 ASP是一种编程语言吗 1
1-3 ASP的工作原理是什么 1
1-4 运行ASP文件时有什么安全措施 1
1-5 ASP有哪些优点 2
1-6 ASP和PHP、JSP的区别 2
1-7 怎样创建ASP运行环境 4
1-8 ASP只能运行在Windows平台上吗 5
1-9 ASP能和JavaScript一起运行吗 5
1-10 ASP中能调用其他文件吗 6
1-11 ASP的开发工具有哪些 7
1-12 需不需要在每个ASP文件的开头使用 <%@LANGUAGE=VBScript%> 8
1-13 需不需要在每一个ASP文件中使用Option Explicit 8
1-14 ASP中的常量是什么 8
1-15 ASP中的变量是什么 8
第2章 ASP开发语言——VBScript基础 10
2-1 VBScript语言的特点是什么 10
2-2 在HTML中怎么使用VBScript 10
2-3 在ASP中怎么使用VBScript 11
2-4 Empty和Null有什么不同 11
2-5 VBScript中的变量是什么 12
2-6 VBScript中包括哪些运算符 12
2-7 VBScript中的数据类型是什么 13
2-8 如何使用赋值语句 13
2-9 如何使用条件语句 14
2-10 如何使用循环语句 15
2-11 For Each与For语句的区别 16
2-12 Chr()与ChrB()有何区别 16
2-13 如何声明变量和判定变量的类型 17
2-14 什么是变量的作用域 18
2-15 怎么强制要求显式声明变量 18
2-16 如何保留或消除过程调用对变量的影响 18
2-17 如何创建和调整动态数组 19
2-18 Sub和Function有何区别 19
2-19 如何把数组转换成字符串 20
2-20 如何截取、分割字符串 20
2-21 如何将每个单词的首字母改成大写 21
2-22 如何实现将数字转换成大写人民币的书写形式 21
2-23 怎样检测字符串出现的次数 23
2-24 怎样将汉字转换为拼音 24
2-25 怎样生成一个随机的字符串 28
2-26 怎样使用函数进行奇数和偶数的判断 28
2-27 怎样生成一个随机数 29
2-28 如何对数组进行排序 29
2-29 VBScript中定义的变量如何在JavaScript中使用 29
第3章 ASP内置对象 31
3-1 如何使用Request对象 31
3-2 Response.Write和<%=%>有何区别 32
3-3 如何清除页面缓存 33
3-4 Application对象的属性是什么 33
3-5 Application对象的方法是什么 33
3-6 Application对象的集合是什么 34
3-7 Application对象和Session对象有何区别 34
3-8 如何限制重复提交同一表单 36
3-9 如何解决Session丢失的问题 38
3-10 Session对象有什么缺点 39
3-11 Session对象失效的客户端解决方法 39
3-12 怎样检查网站使用了多少个Session及Application变量 41
3-13 如何创建、读/写和删除Cookie 41
3-14 Session和Cookie有什么区别 42
3-15 如何遍历Cookies集合 44
3-16 如何判断客户端的Cookie是否处于开启状态 45
3-17 如何使用Cookie记录用户访问信息 45
3-18 如何用Cookie实现仅弹出一次同样的窗口 47
3-19 如何设计跨越域的Cookie 48
3-20 如何获取用户真实的IP地址 50
3-21 Server.Transfer和Response.Redirect有何区别 50
3-22 如何解决URL含有特殊字符引发的错误 50
3-23 如何使用Server对象 51
3-24 如何使用ASPError对象 53
3-25 什么是对象作用域 53
第4章 使用第三方组件开发ASP程序案例 56
4-1 什么是ASP内置组件?组件有哪些 56
4-2 什么是ActiveX控件?在哪里可以得到这些ActiveX控件 56
4-3 常用的ActiveX组件有哪些 57
4-4 如何检测服务器所支持的组件 59
4-5 如何使用内置AdRotator组件创建轮显的广告 61
4-6 如何使用内置Browser Capabilities组件获取客户端浏览器信息 65
4-7 如何使用内置Content Linking组件创建链接 65
4-8 如何使用内置Content Rotator组件轮显网页内容 66
4-9 如何使用内置PageCounter组件设计网页计数器 67
4-10 如何使用内置LoggingUtility组件来实现远程查看IIS日志 68
4-11 如何使用组件CDONTS在线发送E-mail 70
4-12 如何使用组件Excel.Application操作Excel文件 71
4-13 如何使用组件XMLDOM生成XML文件 72
4-14 如何使用组件Windows Script Host查看网络属性 75
4-15 如何使用第三方组件ASPPing获得和Ping命令一样的结果 75
4-16 如何使用第三方组件(ASPHTTP)访问HTTP协议 76
4-17 如何使用第三方组件(ASPUpload)上传文件 78
4-18 如何使用第三方组件(W3 Jmail)在线发送E-mail 85
4-19 如何使用ASPChart生成图表 90
4-20 使用ADODB.Stream组件 91
4-21 使用CDONTS组件在线发送E-mail 96
4-22 将ASP自动转化为DLL组件 97
第5章 ASP文件系统与文件处理 101
5-1 什么是FSO 101
5-2 怎样判断一个文件是否存在 101
5-3 怎样移动目录 101
5-4 怎样删除文件 102
5-5 怎样使用FSO读写文本文件 102
5-6 怎样移动文件 102
5-7 如何使用ADODB.Stream组件读写二进制文件 102
5-8 如何列出某个目录下的文件 104
5-9 如何获得文件大小 105
5-10 如何获得文件最后的修改日期 105
5-11 怎样取得一个文件名字符串中的扩展名 106
5-12 如何判断网站的虚拟物理路径 106
5-13 怎样使用二进制数据 106
5-14 怎样使用Dictionary 107
5-15 如何实现处理延时 108
5-16 无组件上传文件 109
5-17 怎样读取Excel文件 119
5-18 如何在线压缩与解压缩文件 120
5-19 在线文件管理器 122
5-20 如何把一个Excel文件放到ASP页面中 125
5-21 显示磁盘、文件夹及文件的信息 126
第6章 ASP页面设计 135
6-1 怎样使用Include命令 135
6-2 怎样使用Global.asa文件 135
6-3 浏览ASP文件时为什么看到的是源代码 136
6-4 绝对路径与相对路径的表示方法 136
6-5 如何实现图片的循环滚动 137
6-6 怎样使用网页对话框 139
6-7 怎样使用InputBox 140
6-8 如何动态生成表单元素 140
6-9 如何使页面显示时不从缓存读取 141
6-10 如何解决Form提交超大文本提示出错的问题 141
6-11 如何显示随机的图像 142
6-12 怎样获取用户浏览器信息 143
6-13 如何判断用户是从哪个网站连接到本站 143
6-14 如何判断用户是否是第一次访问本站 143
6-15 有没有办法保护自己的源代码,不被别人看到 144
6-16 怎样才能使HTM文件如同ASP文件一样可以执行脚本代码 144
6-17 怎样限制图片尺寸并使图片显示不变形 144
6-18 如何得到页面执行时间 146
6-19 怎样生成BMP文件 146
6-20 如何获取其他站点页面 150
6-21 如何动态添加Form项 151
第7章 ASP数据库开发 153
7-1 怎样安装和配置SQL Server 153
7-2 什么是数据库 154
7-3 什么是数据库管理系统 154
7-4 常用的数据库管理系统介绍 155
7-5 怎样在数据库设计时使用合适的数据类型 157
7-6 怎样设计出结构良好的数据库 157
7-7 如何设计一个适合存储树形结构的数据库 159
7-8 ADO是什么 160
7-9 ADO对象模型介绍 160
7-10 怎样在ASP中使用ADO常量 161
7-11 怎样使用ADO连接数据库 161
7-12 常用ADO数据库连接字符串 161
7-13 如何建立一个空Access数据库 164
7-14 Recordset对象操作数据库实例 164
7-15 如何从Recordset中循环取出所有数据 165
7-16 如何得到插入一条新记录后的新ID 166
7-17 用ADO对象的AddNew方法和使用SQL语句“Insertinto…”有何不同 167
7-18 使用Command对象执行SQL语句 167
7-19 使用SQL语句建立数据库表 168
7-20 连接数据库时使用计算机名称和IP地址有何区别 168
7-21 使用Recordset对象和Command对象来访问数据库有何区别 168
7-22 使用多个Recordset对象操作数据库时是否要创建多个Connection对象 169
7-23 为什么Recordset对象的RecordCount属性值总是为-1 169
7-24 用Recordset对象打开数据库时用哪种锁定方式比较合适 170
7-25 服务端游标与客户端游标有什么区别 170
7-26 怎样执行数据库存储过程 171
7-27 如何在数据库中保存图片 173
7-28 什么时候该使用事务 175
7-29 怎样用ASP备份数据库 176
7-30 在ASP中如何使用MySQL数据库 179
7-31 怎样实现数据分页 180
7-32 SQL数据库有哪些导入导出技术 186
7-33 如何编写网站统计系统 188
7-34 如何用ASP创建DSN 190
7-35 如何利用数据库内容建立下拉列表 191
第8章 ASP的性能与安全 192
8-1 在ASP脚本中写了很多注释会不会影响服务器处理ASP文件的速度 192
8-2 SQL语句写在存储过程中和写在ASP文件中有什么区别 192
8-3 怎样合理使用表格嵌套来优化性能 192
8-4 在ASP中可以混合使用VBScript和JScript吗 194
8-5 使用缓存有什么好处 195
8-6 什么时候不该使用缓存 196
8-7 服务端重定向和客户端重定向的区别 197
8-8 什么情况该将对象缓存至Application对象 200
8-9 几种缓存方法的比较 202
8-10 如何使IIS的数据库连接池发挥作用 203
8-11 尽量少使用Session 205
8-12 使用组件来提高性能 206
8-13 尽量在子程序中使用局部变量 207
8-14 尽量减少重复使用Redim重定义数组 207
8-15 使用<object>标记与Server.CreateObject方法创建对象的区别 208
8-16 Server.Transfer与Response.Redirect的区别 208
8-17 Request(“name”)与Request.Form(“name”)方式访问Request集合的区别 208
8-18 尽量避免重复访问Request集合 209
8-19 怎样加快字符串连接速度 209
8-20 尽量避免使用多维数组 210
8-21 如何在打开页面时显示“正在加载”信息 210
8-22 ASP的安全性真的很差吗 211
8-23 各种身份验证方法 212
8-24 合理设置用户超时 213
8-25 怎样防止同一用户名在不同计算上同时登录 214
8-26 怎样防止一般的SQL注入攻击 216
8-27 通过IIS设置增强安全性 218
8-28 怎样利用NTFS文件系统增强服务器安全 220
8-29 简单的字符串加解密方法 220
8-30 什么是SSL 221
8-31 常见的加密算法 221
8-32 使用VBScript编写MD5算法 222
8-33 使用Session和Cookie保存用户状态哪种更安全 230
8-34 如何限制使用FSO对象 231
8-35 如何限制使用Webshell 232
8-36 如何防止数据库被下载 233
8-37 关于强制刷新网页的几种方法 235
第9章 ASP服务器端验证 236
9-1 如何验证字符串为空 236
9-2 如何验证字符串中是否包含有效字符 236
9-3 如何验证用户名和密码 237
9-4 如何验证数字 238
9-5 如何验证整数或长整数 238
9-6 如何验证电话号码 239
9-7 如何验证电子邮件地址 239
9-8 如何验证日期 240
9-9 如何验证IP地址 241
9-10 如何验证字符串是否包含有效字符 241
9-11 怎样过滤字符串中的HTML代码 242
9-12 怎样将数字转换为大写的中文字 243
9-13 怎样计算日期间隔 243
9-14 如何格式化输出时间和日期 245
9-15 如何根据当前的时间显示不同的问候语 245
9-16 ASP中如何实现数据验证的功能 246
9-17 利用ASP发送和接收XML数据的处理方法 247
9-18 ASP实现远程保存图片 248
9-19 如何防止别人盗链本站的资源 248
9-20 什么是正则表达式 249
9-21 怎样在ASP中使用正则表达式 250
9-22 怎样读取注册表的信息 251
第10章 ASP综合开发与应用案例 252
10-1 制作一个图形计数器 252
10-2 制作一个取色器 252
10-3 留言本系统开发实例 253
10-4 常用用户管理系统 255
10-5 如何加快ASP程序的显示速度 262
10-6 在线购物车实例 263
10-7 计数器比较实例 264
10-8 高级搜索实例 271
10-9 为什么不要轻易使用ASP事务 272
10-10 复选删除多条数据记录的例子 272
10-11 怎样用Visual Basic编写ActiveX DLL 273
10-12 怎样实现远程注册DLL文件 275
10-13 怎样把ASP代码转换为DLL文件 278
10-14 怎样在ASP中引用类 280
10-15 如何计算每天的平均反复访问人数 281
10-16 怎样注册组件 281
10-17 将ASP文件编译成.exe可执行程序 282
10-18 怎样使用ASP关闭计算机 285
10-19 怎样使用ASP添加计算机用户 286
10-20 如何按字数截取字符串 286
10-21 用ASP实现远程批量文件改名 287
10-22 如何用ASP生成静态HTML文件 288
10-23 如何使用IIS动态语言引擎映射出不同的扩展名 289
10-24 如何用ASP制作强大的搜索引擎 289
10-25 如何生成树形目录 291
10-26 在ASP中获取客户端MAC地址的方法 294
10-27 如何编写一个ASP类 295
10-28 如何用ASP实现QQ在线查询 296
10-29 如何在ASP中实现通用的绝对路径生成方法 296
10-30 怎样计算文件下载时间 297
10-31 如何提高ASP中执行SQL语句的效率 298
10-32 如何在ASP中实现Ping命令 299
10-33 执行耗时较长的处理时怎样显示处理进度 299
10-34 如何将数字转化成条形图 300
第11章 ASP程序调试 302
11-1 怎样调试ASP脚本 302
11-2 需不需要在每一个ASP文件中使用“Option Explicit” 303
11-3 使用“On Error Resume Next”有哪些注意事项 304
11-4 ActiveX组件有哪些调试方法 305
11-5 为什么要养成良好的编码习惯 306
11-6 使用统一的命名规则 306
11-7 合理利用Response.Write方法调试ASP 308
11-8 怎样使用Server对象的GetLastError方法 309
11-9 怎样使用定制错误页面 310
11-10 怎样使用事务性脚本 311
11-11 如何在浏览器中显示错误提示 313
11-12 调试前要作哪些准备 314
11-13 有哪些好的习惯能避免调试 314
11-14 调试时有什么好的方法 315
11-15 有哪些常见的语法拼写错误 315
11-16 什么是运行时错误调试 316
11-17 用NetBox自动禁止调试 316
第12章 ASP常见错误代码及处理 318
12-1 ASP错误“8002801d”库没有注册 318
12-2 ASP0126(0x80004005)找不到包含文件 318
12-3 ASP 0177(0x800401F3)无效的ProgID 318
12-4 ADODB.Stream错误“800a0bbc” 318
12-5 Active Server Page错误“ASP0131”不允许的父路径 319
12-6 Microsoft JET Database Engine错误“80040e09”不能更新。数据库或对象为只读 320
12-7 Request对象错误“ASP 0104∶80004005”不允许操作 320
12-8 Access中“80004005操作必须使用一个可更新的查询”错误 321
12-9 Microsoft JET Database Engine错误“80040e07”标准表达式中数据类型不匹配 322
12-10 Microsoft VBScript运行时错误(0x800A01AD) 322
12-11 Microsoft VBScript运行时错误“800a003a”文件已存在 323
12-12 Microsoft VBScript运行时错误“800a0035”文件未找到 323
12-13 Provider错误“80020005”类型不匹配 324
12-14 Microsoft VBScript运行时错误“800a0009”下标越界 324
12-15 Microsoft VBScript编译器错误“800a0414”调用子程序时不能使用括号 325
12-16 ADODB.Recordset错误“800a0e7d”连接无法用于执行此操作 325
12-17 ADODB.Field(0x800A0BCD)错误 326
12-18 Microsoft VBScript编译器错误“800a03f6”缺少“End” 326
12-19 Microsoft VBScript编译器错误“800a0409”未结束的字符串常量 327
12-20 Microsoft VBScript运行时错误“0x800A01F4”变量未定义 327
12-21 Microsoft VBScript编译器错误“800a0411”名称重定义 327
12-22 Microsoft VBScript运行时错误“800a0006”溢出“cint” 328
12-23 Microsoft VBScript运行时错误“800a0046”没有权限 328
12-24 Microsoft JET Database Engine错误“80040e14” 329
12-25 Microsoft VBScript运行时错误“800a01f5”非法赋值 330
12-26 Microsoft JET Database Engine错误“80040e37” 330