标题：ASP.NET学习手册
图书信息
ASP.学习手册
明日科技  吕双  房大伟  刘云峰  等编著 
ISBN 978-7-121-12862-2
2011年4月出版
定价：59.00元(含DVD光盘1张)
16开
512页
宣传语
编程成功之路从此开始！
内 容 简 介
本书以初学者为核心，全面介绍了使用ASP.进行程序开发的各种技术。在内容排列上由浅入深，让读者循序渐进掌握编程技术；在内容讲解上结合丰富的图解和形象的比喻，帮助读者理解“晦涩难懂”的技术；在内容形式上附有大量的提示、技巧、说明、情景应用、实战练习等栏目，夯实读者编程技术，丰富编程经验。全书共分22章，其中，主要讲述了ASP.的开发基础、开发环境、字符与字符串、运算符、数组和集合、内置对象、ADO.技术、标准服务器控件、数据绑定控件、Web用户控件、数据验证控件、GDI+图形图像技术、AJAX无刷新技术、调试与错误处理等知识，并详细介绍了面向对象编程的相关内容。最后，通过几个实战项目使读者将所学知识更好地应用到实际开发当中。
本书附有配套光盘。光盘中包含本书所有程序的源代码、重点难点的实例视频录像。其中，源代码全部经过精心测试，能够在Windows 2000、Windows XP、Windows 2003、Windows 7系统中编译和运行。
本书适用于ASP.的爱好者、初学者和中级开发人员，也可以作为大中专院校和培训机构的教材。
前  言
让想要学习编程的人员都能够学会编程!
我可以学会编程吗？
当然可以！即使你没有基础，即使你是非计算机专业毕业，即使你已过而立之年，甚至是只有初中毕业。我国最早的计算机反病毒专家、江民杀毒软件创始人王江民，初中毕业，38岁开始学习计算机，因为英语基础不好，很多人认为他根本没有学会编程的可能。但王江民没有感觉自己不行，硬是克服各种困难，成为我国最成功的程序开发人员之一。
王江民学习编程的诀窍是什么？
是实践。王江民说：“计算机是实践性非常强的学科。我搞计算机是用计算机，不是学计算机。” 王江民首先学的是BASIC语言。当时，为了辅导上小学的孩子，对软件一片空白的王江民竟然决定编写程序代替家长辅导。短短3个月，王江民就边学边实践，编好了一套数学语文教学软件，试过后效果奇佳，参加电脑报软件交流，被评为第二名，誉为“教育软件第一”。因为这次成功，极大激发了王江民对编程的兴趣，使他从此把精力转到了软件领域。
所以说：实践，是学习编程的最好方法，也是培养编程乐趣、捕获发展机遇的最佳途径。值得注意的是，不要等学完全部知识才去实践，要随时学习，随时实践，哪怕只学了一点点。
这本书适合我吗？
非常适合！本书是学习ASP.编程的最佳选择。所讲内容通俗易懂，易于学习，贴近实践。对于学习中的难点、重点，注意结合实际开发，采用情景应用的方式进行介绍和练习。本书光盘提供了完整的视频讲座，可以对照本书内容循序渐进进行学习。利用本书，不但可以学会编程，更能激发学习者理论联系实际的热情，开发出符合市场需求的软件和项目。
本书内容
本书分为基础篇、核心篇、高级篇和实战篇，共计22章内容。内容安排按照“从零起步，循序渐进”的学习顺序，全面提高读者学、练、用能力。本书知识结构如图1所示。
  
本书特色
  最基础、最易学
为了让初学者易于学习，本书力求内容通俗易懂，讲解寓教于乐。对于初学者难以理解的专业术语，本书都进行了形象的解释，有些还提供了例图。书后附录中又单独将专业术语提炼出来，供读者学习时参考。例如：数据库好比水源；Connection好比伸入水中的进水笼头，保持与水的接触，只有它与水进行了“连接”，其他对象才可以抽到水；Command则像抽水机，为抽水提供动力和执行方法；DataAdapter、DataReader就像输水管，担任着水的传输任务；DataSet则是一个大水库，把抽上来的水按一定关系进行存放，即使撤掉“抽水装置”（断开连接，离线状态），也可以保持“水”的存在，如图2所示。这也正是ADO.的核心。
  

语音视频讲座
为了方便读者学习本书内容，本书附赠光盘中提供了19小时视频讲座。其讲解细腻、层次清楚、互动性强，不但可以加深对书中内容的理解，还可以引导学习者掌握“是什么”、“为什么”、“怎么办”、“应注意些什么”的编程思维能力。所讲视频不仅对书中的内容进行了详细介绍，还对相关技术进行了有效扩展，对开发中易犯的各种错误做出了视频解决方案。
 注重实用性
初学者经常会遇到这样的情况，书中讲解的技术能够理解，但不知道如何应用。例如，在学习抽象类时，读者能够自己定义抽象类并且能够从抽象类派生子类，但是不知道抽象类能够做什么、在哪里应用抽象类。本书在介绍技术时，注意强调技术的实用性，并且通过实例突出技术的应用价值。对于一些典型的应用，书中通过“情景应用”栏目进行重点介绍。
 实战互动练习
要掌握一项技术，最佳的方式就是多练习、多实践。本书每章都提供了多个供读者实践的实例任务，读者可以对照检验对知识的掌握情况。每个实例任务都分为“题目描述”、“技术指导”和“紧急救援”3部分。其中“题目描述”给出了实例功能的详细描述和效果图；“技术指导”给出了开发思路和关键技术；“紧急救援”提供了下载实例源码和开发文档的地址链接。
思想与激励
本书每章都提供了一个与软件行业相关的励志故事，主要有两个目的：一是读者在学习疲惫的时候，可以阅读这些人物故事，放松一下；二是希望读者能从这些人物事迹中有所感悟。这些人物都具有一些共同的特征，他们都能将学习与实践完美结合，都能发现生活中的一些小机会，借以发扬光大，都具有专注、坚持不懈的精神……。希望这些故事能成为你编程路上的精神食粮，伴你度过编程学习的日日夜夜。
『超值DVD光盘』
为了帮助读者学习和使用书中的实例，本书附赠DVD光盘1张，里面不仅包含书中所有实例项目的源代码、素材、光盘使用说明书，还提供了19小时视频专题录像以及5个项目源码。光盘目录如图3所示。
图3  本书配套光盘目录
『本书适用人群』
本书是一部零基础编程图书，非常适合以下人员阅读：
  零基础的初学编程人员        初中级程序开发人员
编程爱好者                    想学编程的各企事业单位的在职人员
大中专院校的教师和学生      相关培训机构的教师和学员
本书参与作者
本书由明日科技组织编写，参加编写的有吕双、房大伟、刘云峰、杨丽、顾丽丽、刘玲玲、董大永、李继业、尹强、张磊、王小科、王军、安剑、孙秀梅、赛奎春等。由于作者水平有限，疏漏和不足之处在所难免，欢迎广大读者提出宝贵意见。
非学无以广才，非志无以成学。
祝大家读书快乐！
明日科技
2011年1月
目  录
第1篇  基础篇
第1章  走进ASP. 18
1.1  接触ASP. 19
1.1.1  ASP.是什么 19
1.1.2  .NET Framework 19
1.1.3  C#语言 20
1.1.4  三者之间的关系 20
1.2  选择ASP.的理由 21
1.2.1  ASP.特性 21
1.2.2  ASP.的优点 21
1.3  欣赏ASP.成功案例 22
1.3.1  龙头老大KFC 22
1.3.2  问道官网 22
1.3.3  中华人民共和国人力资源和社会保障部 23
1.3.4  东风汽车公司 23
1.4  学好ASP.的方法 24
1.4.1  明确学习目的 25
1.4.2  打好基础，盖好“房子” 25
1.4.3  多请教、多交流 25
1.5  本章小结 25
第2章  构建ASP.开发环境 26
2.1  构建ASP. 3.5开发环境 27
2.1.1  软件和硬件要求 27
2.1.2  安装IIS 28
2.2  安装Visual Studio 2008集成开发工具 29
2.2.1  安装Visual Studio 2008 29
2.2.2  创建第一个“Hello Word” 32
2.2.3  Visual Studio 2008功能介绍 33
2.3  安装MSDN帮助系统 39
2.3.1  安装MSDN帮助系统 39
2.3.2  使用MSDN帮助系统 42
2.4  本章小结 43
第3章  ASP.网站开发基础 44
3.1  设计ASP.网站 45
3.1.1  设计Web页面 45
3.1.2  运行Web网站 47
3.1.3  配置IIS虚拟目录 47
3.2  ASP.网页语法 49
3.2.1  ASP.网页扩展名 49
3.2.2  ASP.页面指令 50
3.2.3  注释ASPX文件中代码 53
3.3  本章小结 53
第4章  C#语言基础 54
4.1  掌握数据类型 55
4.1.1  值类型 55
4.1.2  引用类型 61
4.2  认识常量和变量 62
4.2.1  什么是常量 62
4.2.2  定义并使用常量 62
4.2.3  什么是变量 63
4.2.4  变量的声明和赋值 63
4.2.5  变量的作用域 65
4.3  如何实现类型转换 66
4.3.1  隐式类型转换 66
4.3.2  显式类型转换 67
4.4  使用C#中运算符 68
4.4.1  算术运算符 68
4.4.2  赋值运算符 71
4.4.3  关系运算符 72
4.4.4  情景应用1：开发简单计算器 74
4.4.5  情景应用2：开发简单登录 74
4.5  实战练习 75
4.5.1  输入出生年份判断生肖属相 75
4.5.2  求最大公约数 76
4.5.3  求最小公倍数 76
4.6  本章小结 77
第5章  掌握字符与字符串 78
5.1  Char字符类应用 79
5.1.1  Char类的概述 79
5.1.2  Char类的应用 79
5.1.3  转义字符 81
5.2  使用静态字符串类String 82
5.2.1  字符串的概念 82
5.2.2  比较字符串 83
5.2.3  格式化字符串 84
5.2.4  截取字符串 85
5.2.5  分割字符串 85
5.2.6  替换字符串 86
5.3  使用可变字符串类StringBuilder 87
5.3.1  StringBuilder类的概述 87
5.3.2  StringBuilder类的应用 87
5.3.3  StringBuilder类与String类的区别 88
5.4  实战练习 89
5.4.1  巧截字符串的数字 89
5.4.2  在字符串中查找指定的字符或字符串 90
5.4.3  颠倒字符串 90
5.5  本章小结 91
第6章  面向对象程序设计 92
6.1  理解面向对象编程 93
6.1.1  面向对象编程概述 93
6.1.2  面向对象编程的特点 94
6.2  面向对象中类与类成员 95
6.2.1  类的概念 95
6.2.2  创建类 96
6.2.3  定义类 97
6.2.4  实例化类对象 99
6.2.5  类的成员字段 99
6.2.6  类的成员方法 101
6.2.7  类的成员属性 104
6.2.8  构造函数 107
6.2.9  析构函数 109
6.2.10  情景应用：访问商品类的成员 109
6.3  面向对象特性之封装 110
6.3.1  封装概述 110
6.3.2  封装的实现 111
6.4  面向对象特性之继承 112
6.4.1  继承概述 112
6.4.2  继承的实现 113
6.5  面向对象特性之多态 115
6.5.1  认识多态 115
6.5.2  重载 116
6.5.3  重写 117
6.6  实战练习 119
6.6.1  使用面向对象的思想查找数字 119
6.6.2  使用面向对象的思想实现简单计算器 120
6.7  本章小结 121
第7章  掌握流程控制语句 122
7.1  接触条件语句 123
7.1.1  if条件语句 123
7.1.2  switch多分支语句 126
7.1.3  情景应用：判断数字奇偶性 128
7.2  掌握循环语句 129
7.2.1  while语句 130
7.2.2  do…while语句 131
7.2.3  for语句 132
7.2.4  foreach语句 134
7.3  实战练习 136
7.3.1  实现简单的会员注册功能 136
7.3.2  遍历指定文件夹 137
7.3.3  递归算法的经典面试题 138
7.4  本章小结 138 
第2篇  核心篇
第8章  数组与集合 140
8.1  了解数组从何而来 141
8.1.1  数组概念 141
8.1.2  数组的用途 141
8.2  走进一维数组 141
8.2.1  创建一维数组 142
8.2.2  一维数组初始化 142
8.2.3  遍历一维数组 143
8.2.4  情景应用：尝试使用
foreach语句遍历数组 144
8.3  迈向二维数组 144
8.3.1  创建二维数组 144
8.3.2  初始化二维数组 146
8.3.3  遍历二维数组 147
8.4  掌握数组的基本操作 148
8.4.1  清空数组 148
8.4.2  合并数组 149
8.4.3  拆分数组 150
8.4.4  查找数组元素 151
8.4.5  数组排序 151
8.5  使用ArrayList集合 154
8.5.1  ArrayList集合概述 154
8.5.2  ArrayList成员 154
8.5.3  添加ArrayList集合元素 155
8.5.4  删除ArrayList集合元素 156
8.5.5  遍历ArrayList集合 158
8.5.6  查找ArrayList集合元素 158
8.6  实战练习 160
8.6.1  经典问题之约瑟夫环问题 160
8.6.2  数组之冒泡排序 161
8.6.3  数组快速排序 162
8.7  本章小结 163
第9章  掌握ASP.内置对象 164
9.1  程序响应对象Response 165
9.1.1  Response对象概述 165
9.1.2  Response对象常用属性 165
9.1.3  Response对象常用方法 166
9.1.4  情景应用1：页面跳转 168
9.1.5  情景应用2：输出二进制图像 168
9.2  程序请求对象Request 170
9.2.1  Request对象概述 170
9.2.2  Request对象常用属性 170
9.2.3  Request对象常用方法 171
9.2.4  情景应用1：获取地址栏传递的数据 172
9.2.5  情景应用2：获取浏览器和主机信息 173
9.3  全局变量应用对象Application 174
9.3.1  Application对象概述 174
9.3.2  Application对象常用属性 175
9.3.3  Application对象常用方法 176
9.3.4  Application对象常用事件 177
9.3.5  情景应用1：简单聊天室 178
9.3.6  情景应用2：在线访问人数统计 180
9.4  会话信息处理对象Session 182
9.4.1  Session对象的概述 182
9.4.2  Session对象常用属性 182
9.4.3  Session对象常用方法 183
9.4.4  情景应用：Session对象存储登录信息 184
9.5  缓存对象Cookie 185
9.5.1  Cookie对象概述 185
9.5.2  Cookie对象常用属性 186
9.5.3  Cookie对象常用方法 187
9.5.4  情景应用：Cookie对象存储登录用户名和密码 188
9.6  服务器信息处理对象Server 189
9.6.1  Server对象概述 189
9.6.2  Server对象常用属性 190
9.6.3  Server对象常用方法 190
9.6.4  情景应用：获取文件或文件夹在服务器中的物理地址 192
9.7  实战练习 192
9.7.1  使用Response对象设置页面缓存 192
9.7.2  利用Cookie统计IP地址登录次数 193
9.7.3  Session对象判断用户登录状态 194
9.8  本章小结 195
第10章  ADO.数据库开发技术 196
10.1  了解什么是ADO. 197
10.2  使用Connection连接数据库 198
10.2.1  熟悉Connection对象 198
10.2.2  连接数据库字符串 199
10.2.3  使用SqlConnection对象连接数据库 201
10.2.4  使用OleDbConnection对象连接数据库 202
10.3  使用Command对象操作数据 203
10.3.1  熟悉Command对象 204
10.3.2  使用Command对象添加数据 206
10.3.3  使用Command对象修改数据 208
10.3.4  使用Command对象删除数据 209
10.3.5  使用Command对象调用存储过程 211
10.3.6  情景应用1：使用Command对象添加联系人管理数据 212
10.3.7  情景应用2：使用Command对象修改联系人管理数据 213
10.3.8  情景应用3：使用Command对象删除联系人管理数据 214
10.4  使用DataReader对象读取数据 215
10.4.1  理解节省内存的DataReader对象 215
10.4.2  使用DataReader对象读取数据 216
10.5  使用DataSet和DataAdapter查询数据 218
10.5.1  离线模式核心对象——DataSet对象 218
10.5.2  桥梁架设工程师——DataAdapter对象 219
10.5.3  填充并访问DataSet表中数据 220
10.5.4  修改DataSet并更新数据源（批量更新） 221
10.6  实战练习 222
10.6.1  使用参数化查询预防SQL注入式攻击 222
10.6.2  应用存储过程有效预防SQL注入式攻击 224
10.7  本章小结 225
第11章  ASP.服务器控件 226
11.1  服务器端控件概述 227
11.2  文本类型控件 227
11.2.1  使用Label控件显示文本 228
11.2.2  使用TextBox控件输入数据 229
11.2.3  情景应用：简单的加法运算器 233
11.3  按钮类型控件 234
11.3.1  通过Button控件提交表单 234
11.3.2  显示图像的ImageButton控件 236
11.4  列表类型控件 237
11.4.1  呈现列表的ListBox控件 238
11.4.2  实现下拉框的DropDownList控件 242
11.5  选择类型控件 245
11.5.1  实现单选的RadioButton控件 246
11.5.2  实现多选的CheckBox控件 247
11.6  图形控件显示图像 250
11.6.1  显示图像的Image控件 250
11.6.2  设置热点区域的ImageMap控件 252
11.7  文件上传控件上传文件 255
11.7.1  FileUpload控件的概述 255
11.7.2  FileUpload控件的属性 255
11.7.3  FileUpload控件的方法 257
11.7.4  情景应用：上传图片并获取相关信息 257
11.8  实战练习 259
11.8.1  限制文本框中输入的字符长度 259
11.8.2  显示验证码图片 260
11.8.3  带图像的登录按钮 260
11.9  本章小结 261
第12章  数据绑定控件 262
12.1  GridView控件基本应用 263
12.1.1  关于GridView控件 263
12.1.2  GridView控件分页绑定数据 263
12.1.3  以编程方式实现选中、编辑和删除GridView数据项 265
12.2  GridView控件72般绝技 268
12.2.1  一次性编辑GridView控件所有行中的数据 268
12.2.2  在GridView控件中内嵌DropDownList设置考试试卷状态 270
12.2.3  GridView控件中高亮显示行数据 271
12.2.4  在GridView控件中排序数据 272
12.2.5  在GridView控件中实现全选和全不选功能 274
12.3  灵活访问数据俊杰：DataList控件 275
12.3.1  关于DataList控件 276
12.3.2  分页绑定DataList控件中的数据（实现
页面跳转功能） 276
12.3.3  使用DataList删除数据（支持批量删除） 279
12.3.4  在DataList控件中实现数据编辑操作 282
12.4  实战练习 284
12.4.1  GridView控件实现用“…”代替超长字符 284
12.4.2  GridView控件加入自动求和及平均值功能 285
12.5  本章小结 286 
第3篇  高级篇
第13章  创建自己的Web用户控件 288
13.1  Web用户控件的概述 289
13.1.1  什么是Web用户控件 289
13.1.2  用户控件与普通Web页的比较 289
13.1.3  用户控件的优点 289
13.2  创建及使用Web用户控件 290
13.2.1  创建Web用户控件 290
13.2.2  将Web用户控件添加至网页 291
13.2.3  情景应用1：在用户控件中添加用户控件 292
13.2.4  情景应用2：使用Web用户控件制作博客导航条 293
13.3  设置用户控件 295
13.3.1  访问用户控件的属性 295
13.3.2  访问用户控件中的服务器控件 296
13.3.3  将Web网页转化为用户控件 297
13.4  Web用户控件的实际应用 299
13.4.1  创建会员注册的Web用户控件 299
13.4.2  具有文件上传功能的Web用户控件 301
13.4.3  创建在线投票的Web用户控件 302
13.5  实战练习 306
13.5.1  利用Web用户控件实现选择日期的功能 306
13.5.2  网页软键盘 306
13.6  本章小结 307
第14章  ASP.验证控件 308
14.1  了解何谓验证控件 309
14.1.1  什么是验证控件 309
14.1.2  验证控件的工作原理 309
14.2  验证是否输入数据 310
14.2.1  RequiredFieldValidator控件 310
14.2.2  情景应用：验证用户是否输入信息 311
14.3  比较数据是否一致 312
14.3.1  CompareValidator控件 312
14.3.2  情景应用：验证两次密码输入是否一致 314
14.4  验证输入数据的范围 315
14.4.1  RangeValidator控件 315
14.4.2  情景应用：验证输入的日期是否在指定范围内 317
14.5  验证数据输入格式 317
14.5.1  RegularExpressionValidator控件 318
14.5.2  情景应用：验证邮件、生日等是否正确 320
14.6  验证错误信息汇总 321
14.6.1  ValidationSummary控件 321
14.6.2  情景应用：注册页面错误信息汇总 323
14.7  自定义验证控件 324
14.7.1  CustomValidator控件 324
14.7.2  情景应用：验证密码是否超出规定长度 326
14.8  实战练习 327
14.8.1  验证出国护照 327
14.8.2  自定义出生日期的输入格式 327
14.8.3  验证密码格式 328
14.9  本章小结 328
第15章  利用GDI+绘制Web图形图像 329
15.1  了解什么是GDI+ 330
15.2  熟练掌握GDI+绘图基础 330
15.2.1  创建 Graphics 对象 330
15.2.2  创建Pen对象 331
15.2.3  创建Brush对象 331
15.3  使用GDI+绘制基本图形 337
15.3.1  绘制直线 337
15.3.2  绘制矩形 338
15.3.3  绘制椭圆和弧 339
15.3.4  绘制多边形 341
15.3.5  绘制基数样条 342
15.3.6  绘制贝塞尔样条 344
15.3.7  情景应用1：纹理效果的文字 345
15.3.8  情景应用2：渐变效果的文字 346
15.4  实战练习 347
15.4.1  绘制公章 347
15.4.2  波形图的绘制 348
15.4.3  倒影效果的文字 348
15.5  本章小结 349
第16章  AJAX无刷新技术 350
16.1  初次体验ASP. NET AJAX技术 351
16.1.1  AJAX开发模式 351
16.1.2  ASP. AJAX的优点 351
16.1.3  探讨ASP. AJAX架构 352
16.2  ASP. NET AJAX服务器控件 352
16.2.1  ScriptManager脚本管理控件 353
16.2.2  UpdatePanel局部更新控件 358
16.2.3  Timer计时器控件 361
16.3  AJAX Control Toolkit扩展控件 362
16.3.1  下载ASP. NET AJAX Control Toolkit 362
16.3.2  将控件添加到Visual Studio的Toolbox中 362
16.4  应用AJAX Control Toolkit扩展控件 363
16.4.1  TextBoxWatermark：添加水印提示 363
16.4.2  PasswordStrength：智能密码强度提示 365
16.4.3  SlideShow：播放照片 367
16.5  实战练习 369
16.5.1  应用Timer控件实现在线考试倒计时 369
16.5.2  应用Timer控件实现网站气泡提示 370
16.5.3  多样式验证控件验证注册信息 371
16.6  本章小结 372
第17章  调试与错误处理 373
17.1  认识错误类型 374
17.1.1  语法错误 374
17.1.2  语义错误 374
17.1.3  逻辑错误 375
17.2  掌握程序调试 376
17.2.1  设定断点 376
17.2.2  开始执行 377
17.2.3  中断执行 379
17.2.4  停止执行 379
17.2.5  运行到指定位置 379
17.3  程序错误处理 379
17.3.1  服务器故障排除 380
17.3.2  ASP.中的异常处理 381
17.4  本章小结 385 
第4篇  实战篇
第18章  开发网站留言板 388
18.1  网站留言板概述 389
18.1.1  功能设计与业务流程 389
18.1.2  数据库设计 389
18.2  开发前技术准备 390
18.2.1  配置第三方FreeTextBox组件 390
18.2.2  应用Visual Studio 2008母版页 392
18.2.3  定义CSS样式统一页面风格 393
18.3  主要开发过程 394
18.3.1  配置Web.Config 394
18.3.2  编写程序公共类 394
18.3.3  留言板主页设计 398
18.3.4  发表留言模块设计 399
18.3.5  留言信息查看页面设计 400
18.3.6  留言信息管理设计 404
18.3.7  回复留言设计 405
18.4  本章小结 407
第19章  文件上传与下载 408
19.1  设计思路 409
19.1.1  功能概述 409
19.1.2  程序业务流程图 409
19.1.3  文件组织结构 409
19.2  文件上传 410
19.2.1  实现关键技术 410
19.2.2  功能实现 410
19.3  文件下载 414
19.3.1  实现关键技术 414
19.3.2  功能实现 415
19.4  本章小结 417
第20章  AJAX无刷新聊天室 418
20.1  聊天室概述 419
20.2  开发流程图 419
20.3  数据库设计 420
20.4  关键技术 421
20.4.1  FrameSet框架技术的应用 421
20.4.2  AJAX技术应用讲解 423
20.4.3  Session对象的应用 426
20.4.4  DataList控件的分页技术 426
20.5  实现过程 428
20.5.1  公共类编写 429
20.5.2  设计分析 431
20.6  本章小结 442
第21章  实现会员密码找回功能 443
21.1  概述 444
21.1.1  功能概述 444
21.1.2  数据库设计 444
21.1.3  密码找回流程图 444
21.2  关键技术 444
21.2.1  会员名验证技术 445
21.2.2  Panel控件分步显示内容 446
21.2.3  发送邮件技术 447
21.2.4  3次找回密码机会 448
21.2.5  SMTP服务的安装与配置 448
21.3  会员密码找回的实现过程 451
21.3.1  用户登录设计 451
21.3.2  会员注册设计 452
21.3.3  会员密码找回设计 455
21.4  本章小结 458
第22章  完美实现网络硬盘 459
22.1  网络硬盘概述 460
22.1.1  系统功能结构图 460
22.1.2  系统预览 460
22.2  数据库设计 461
22.3  关键技术详解 462
22.3.1  上传文件 462
22.3.2  创建文件夹 463
22.3.3  删除文件或文件夹 464
22.3.4  文件或文件夹更名 465
22.3.5  下载文件 466
22.4  公共类设计 467
22.5  用户注册 471
22.5.1  功能展示 471
22.5.2  设计思路 471
22.5.3  功能实现 471
22.6  用户登录 474
22.6.1  功能展示 474
22.6.2  设计思路 474
22.6.3  功能实现 475
22.7  文件上传 476
22.7.1  功能展示 476
22.7.2  设计思路 476
22.7.3  功能实现 477
22.8  文件管理 478
22.8.1  功能展示 478
22.8.2  设计思路 478
22.8.3  功能实现 479
22.9  个人资料 490
22.9.1  功能展示 491
22.9.2  设计思路 491
22.9.3  功能实现 491
22.10  本章小结 495
附录A  专业术语表 496