学习ASP应如何开始

  很多人认为ASP就是程序,虽然在大多数情况下ASP文件都需要编程,但这并不准确,最明显的例子是把一个.htm文件直接改成.asp,这样的文件也称为ASP文件,然而这个文件并不包含程序。不少ASP书籍、网上教程也是一开始就教人编写VBS脚本,诚然,ASP技术最终体现在程序上,然而这些书籍教程的作者和读者都忽略了一个前提,那就是应该具备的基础。随着网络越来越深入到人们的生活中,学习ASP也越来越大众化,许多“什么也不懂”的人也对它产生了兴趣,从QQ群、论坛中所提的问题,我明显感觉到许多人不是不努力去学,而是不知道从何下手,光靠书上或教程中讲的知识,似乎难以解决一些实际问题,学了半天对自己的问题也不清楚应该用哪方面的知识去解决。ASP一种做网站的方法,综合了多种技术手段,因此学习ASP就需要多方面的基础。对于初学者,倘若对这些知识不了解,很容易陷入技术误区。当然不可能一下子全部掌握,那么就应该循序渐进,从易到难,对已经学到的知识要做到真正“理解”。基础不牢靠,学习效果事倍功半。本文不打算深入阐述具体知识,只是列出一个提纲,告诉大家应当按照怎样的顺序来学习ASP,所罗列的每个项目,都不难在书上或网上找到详细的讲解。
1、ASP基本原理
首先要理解什么叫“服务器端”,什么叫“客户端”。简单来说客户端是发送请求、显示结果的电脑,服务器端是接收、处理请求,发送结果的电脑。比如你上www.net578.com,那么你的电脑就是客户端,www.net578.com是服务器端,这个例子很好理解,实际的情况是很多人在“本机”上安装IIS,通过“http://localhost"同样可以访问,看起来只有一台电脑,但是,在这个过程中同样有“两端”,只不过由一台电脑充当两个角色,运行机制和上面的例子完全一样。
再来看ASP干了些什么。一个网页,最终是在客户端浏览器中显示出HTML结果,ASP程序运行于服务器端,它的作用就是在服务器上接收请求,处理数据,最后按照写好的程序生成HTML,发送到客户端,这样就能够在客户端浏览器中看到结果。
2、HTML(包括CSS)
如果不掌握HTML语言,就不可能做出优秀的网页程序,这不仅对ASP而言,其他任何技术如JSP、PHP、.NET等也是如此。虽然FrontPage、Dreamweaver等软件可以简化HTML开发过程,通过鼠标做网页,然而,ASP编程是基于代码的,在学习过程中不要偷懒,学会HTML之后再使用工具软件是正确的方法。
3、VBScript与服务器内建对象
ASP的核心是编程,目前绝大多数ASP程序使用VBScript语言来编写,这也是服务器默认的语言。不要认为学习ASP就是学习VBS,它只是ASP的一必要条件,除此之外ASP也可以用JScript来编写,但需要在程序首行申明。
严格来说,脚本语言和服务器对象这两项内容各自属于不范筹,但服务器对象的使用是通过脚本语言来体现的,比如:response.write "hello",在任何VBScript手册中都看不到该语句的解释,对于这条语句正确理解应该是调用response对象的write方法,输出字符串"hello"发送到客户端。这里response是服务器内建对象,可以按照VBS的语法来调它的各种方法。常用服务器内建对象有五个:server、request、response、session、application,关于这些对象的详细内容参考http://www.net578.com/topic.aspx?topicid=545每个对象的使用都要遵循所使用的脚本语言语法,如
VBScript中格式为:response.write "hello"
JScript中格式为:response.write ("hello");
从某种意义上说,服务器内建对象才正真是由ASP自已的东西。
4、数据库与ADO
不使用数据库的ASP程序基本上没有什么价值,因此这也是一个学习的重点。使用数据库,首先要了解库、表、记录、字段等基本概念,更要学习如何设计数据库,怎样规划表与表的关系。许多初学者不重视数据库结构的设计,给以后的开发带来许多麻烦,因为在完成数据库设计的同时,还确定了整个程序的基础构架,有一个良好的数据库结构,才可能有优秀的程序,结构的修改往往会引起整个开发思路变更。好比修楼房,修到一半时要求改设计图纸,那前面所做的工作都是白费力气。
数据库建立好后,要在程序中使用,由服务器提供的ADO组件实现,ADO并不是内建对象,需要在程序中用代码创建。典型的数据库操作过程:
1、创建并打开一个连接(connection),通常称为CN或CONN对象
2、创建并打开一个记录集(recordset),通常称为RS对象
3、执行显示/修改/删除等操作
4、关闭记录集并释放对象
5、关闭连接并释放对象
这5个步骤,看似简单,其实隐含了许多更为基础的知识。建立一个数据库连接,首先要确定数据库类型,不同的类型有不同的连接字符串,即使同一个数据库,也有许多种驱动方法OLEDB,ODBC,DSN,UDL等等,ACCESS数据库绝对路径、相对路径、服务器本地路径、数据库文件名后缀,SQL Server数据库验证方式等,这些内容并不难,花一两天来专门学习是很有必要的。
此外,在打开一个RS对象时,需要一条SQL语句。完全掌握SQL语言并不比学会C++简单多少,对于初学者掌握Select、Update、Delete三条语句,inner join ... on和一些分组、统计函数能满足大部分需要。
5、简单客户端编程
前面说过ASP运行于服务器,然而为什么要学习客户端编程呢?正因为ASP是服务器端技术,它对客户端界面表现与控制无能为力,必须借助客户脚本端编程,例如动网论坛DVBBS,除了.asp文件以外还有大量的.js脚本文件。可以肯定,我们经常在使用这项技术,比如:弹出窗口、导航菜单、鼠标事件等等,平常所谓“静态编程”、“JS特效”、“网页特效”、“前台程序”等都属于此项技术。可以这样说,服务器端ASP提供内容,客户端HTML和JavaScript决定这些内容如果在浏览器上显示。可见,一个完整的ASP程序是离不开客户端脚本,作为ASP程序员,必须要了解一些客户端编程技术。
与“服务器脚本”相类似,客户端脚本可以由VBScript、JScript或JavaScript语言来编写,由浏览器解释运行。关于这三种语言的关系,请参考http://www.net578.com/topic.aspx?topicid=542。浏览器默认的语言是JavaScript,因此大部分客户端程序都由它来编写。初学者要掌握内容有:
JavaScript语法
窗口、文档对象 (例:window.open(), location="",document.write("")等)
用JavaScript控制CSS (例:div.style.display="none",span.className="smalltext"等)
表单对象 (form.username.value="..")
常用事件捕捉(onload,onclick,onsubmit,onchange...)
客户端编程,是一个庞大的技术体系,我认为远比ASP编程复杂和广泛得多。它运行于客户端的浏览器,不同浏览器之间,部分代码不能通用,存在兼容性问题;W3C不断更新各种各样的WEB标准标准;浏览器的升级、HTML到DHTML,XML的过渡等,都给客户端编程带来诸多问题。不过在学习ASP的过程中,上面几项基本能够满足需要,毕竟我们主要学习的是对服务器编程。如果你对客户端编程有兴趣,就要深入学习浏览器文档对象模型(DOM)、DHTML行为、高级CSS应用、HTML行为组件(HTC)、JavaScript类、XML/XLS等,并密切关注W3C的最新标准。其实做一名优秀的客户端程序员,与ASP程序员同样精彩。
6、服务器组件
IIS本身只提供六个内建对象,能够处理的内容有限,要实现更多服务器功能,就要安装相应的组件。这些组件表现为.dll文件,在服务器中注册,IIS启动时一并读入进程。代码中表现为由server.createobject方法创建的对象实例。例如,ASP内建对象并没有操作数据库的功能,这由服务器上MDAC组件提供的ADO对象来完成;文件上传是一个常见问题,服务器上安装了SA-Fileup组件,那么可以用该组件来做,如果服务器没有安装,那么只能够通过“无组件”上传的方式,大家可以找有组件和无组件上传的代码比较,思考由set upload=server.createobject("...")和set upload=new ... 创建对象的差异。除了这些还有FSO、JMail、CDONTS等等。归根到底,服务器组件就是扩展ASP内建对象能力范围以外的功能,需要什么功能必须在服务器上安装相应该的组件(注册DLL)。若要自己编写组件,则使用VB、C++等编译语言编写,生成DLL,这在ASP讨论范围之外。

最后,简单列一个入门时间表:
第一周 HTML
重点:完全掌握<TABLE>及下属标签,超链接/书签(锚点),表单<Form>及下属标签。
效果:达到能用记事本控制布局。
第二、三周 JavaScript与客户端编程
重点:见上文所述
效果:看到一个网页特效,能够分析出编程的思路。
第四、五周 VBScript、表单、Post/Get、request对象、response对象
重点:语法、数据类型、三大循环/判断/分支、函数、程序流程控制
效果:熟练掌握语法,能眼一看出输入的语法错误,精确控制程序逻辑,对函数有一个粗略认识。
第六周 服务器其他对象
第七、八周 数据库连接、SQL语言
重点:数据库结构设计、连接方法、select/update/delete 等基本SQL语句
效果:根据网站功能需要设计出合理数据库结构,掌握常见数据库连接方法和基本SQL语句语法。
第九、十周 实例练习
从数据库设计开始,自己分别做一个聊天室、小型论坛、投票调查系统。

  至此,基本可以摘下“菜鸟”的帽子了,但要想成为高手,还有很长的路要走,需要多看、多练、多思考,不断地假设-试验-修正,经验才会积累起来,希望大家都能在学习ASP的过程中体会到编写代码的乐趣。


返  回