ASP完整教程完全ASP编程.docx
《ASP完整教程完全ASP编程.docx》由会员分享,可在线阅读,更多相关《ASP完整教程完全ASP编程.docx(91页珍藏版)》请在冰豆网上搜索。
![ASP完整教程完全ASP编程.docx](https://file1.bdocx.com/fileroot1/2023-1/9/63394477-f128-463d-ad7b-01973fdf594e/63394477-f128-463d-ad7b-01973fdf594e1.gif)
ASP完整教程完全ASP编程
ActiveServerPages教程
二零零零年二月二日
第一章引言…………………………………………………………………….3
第二章简介……………………………………………………………….……8
第三章ASP基础………………………………………………………………13
第四章脚本基础………………………………………………………………19
第五章脚本变量、函数、过程和条件语句…………………………………22
第六章脚本循环语句…………………………………………………………27
第七章内建Request对象…………………………………………….………30
第八章内建Reponse对象……………………………………………………36
第九章内建对象Application和Session……………………………………42
第十章Global.asa文件的使用及Chat程序…………………………………48
第十一章内建对象Server……………………………………………………53
第十二章数据库查询语言
(1)……………………………………..…………57
第十三章数据库查询语言
(2)…………………………………………..……62
第十四章ActiveX组件………………………………………………..………66
第十五章常用的ASPActiveX组件……………………………………….…70
第十六章其它的ASP常用组件…………………………………………...…75
第十七章ADO存取数据库时如何分页显示……………………………...…81
第十八章堵住ASP漏洞…………………………………………………...…87
第十九章最新的ASP、IIS安全漏洞………………………………………..91
第一章引言
您的网站是否仍一如既往地保持“静态”?
目前呈几何增长的互联网网站中,有相当一部分仍固守“静态”,无形中已大大落后于时代的步伐。
所谓“静态”指的就是网站的网页内容“固定不变”,当用户浏览器通过互联网的HTTP(HypertextTransportProtocol)协议向WEB服务器请求提供网页内容时,服务器仅仅是将原已设计好的静态HTML文档传送给用户浏览器。
其页面的内容使用的仅仅是标准的HTML代码,最多再加上流行的GIF89A格式的动态图片,比如产生几只小狗小猫跑来跑去的动画效果。
若网站维护者要更新网页的内容,就必须手动地来更新其所有的HTML文档。
“静态”网站的致命弱点就是不易维护,为了不断更新网页内容,你必须不断地重复制作HTML文档,随着网站内容和信息量的日益扩增,你就会感到工作量大得出乎想象。
你不禁要问:
那么什么是动态网站呢?
这就是本文将重点讲述的核心,所谓“动态”,并不是指那几个放在网页上的GIF动态图片,在这里笔者为动态页面的概念制定了以下几条规则:
1、“交互性”即网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大事所趋。
2、“自动更新”即无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量。
3、“因时因人而变”,即当不同的时间、不同的人访问同一网址时会产生不同的页面,是不是很酷?
现在你已经对“动态”网站有了一个基本的概念,接下来应挑选称手的“兵刃”了。
将网站“动态”化的方法很多,这要看你是出于何种需求。
如果你是个人网站的维护者,使用的是免费主页空间,那么绝大多数情况下你只能使用Java、JavaScript和最新的DHTML技术,如果你的主页空间提供者能给予你CGI权限或ASP支持,那么你将能非常幸运地发挥真正的动态技术。
关于CGI和ASP技术将在后面的着重讨论,这里针对个人网站仅就最新的DHTML技术进行重点介绍。
究竟什么是DHTML?
它与传统的HTML有什么不同?
DHTML就是当网页从WEB服务器下载后无须再经过服务器的处理,而在浏览器中直接动态地更新网页的内容、排版样式、动画。
比如,当鼠标移至文章段落中,段落能够变成蓝色,或者当你点击一个超链后会自动生成一个下拉式的子超链目录。
这就是DynamicHTML(动态HTML),它是近年来网络飞速发展进程中最振奋人心也是最具实用性的创新之一。
它是一种通过各种技术的综合发展而得以实现的概念,这些技术包括JavaScript,VB0Script,DocumentObjectModel(文件目标模块),Layers和CascadingStyleSheets(CSS样式表)等。
非常遗憾的是在网景Netscape和微软IE浏览器几番大战后,我们仍没有得到一个对DHTML支持的统一标准。
因此本文在介绍DHTML时不得不分别讲述。
让我们先来看看MicrosoftIE4对DHTML的支持:
1.动态内容(DynamicContent):
动态地更新网页的内容,可"动态"地随时插入、修改、或删除网页的元件,譬如文字、标记等。
2.动态排版样式(DynamicStylesSheets):
通过W3C的“CascadingStyleSheets”(串联式排版样式,简称CSS1或CSS),提供了设定HTML标记的字体大小、字型、粗细、字型样式、行高度、文字颜色、加底线或加中间横线、与边缘距离、靠左右或置中、缩排、背景图片或颜色等排版功能。
而“动态排版样式”,可以“动态”地随时地改变排版样式。
3.动态定位(DynamicPositioning):
通过W3C的“WorkingDraftonPositioningHTMLwithCascadingStyleSheets”,提供HTML元件在X、Y、Z轴的定位功能,让设计者可以放置影像、控件、文字等在网页上的任何位置上。
而放置在不同的Z轴上,设计者就可以产生重叠的效果。
4.内建资料处理(DataAwareness):
无须复杂的程序,无须花费服务器太多资源,即可让网页设计者即时处理文档。
5.内建多媒体支援:
IE4.0结合CSS与内建的ActiveXControls,提供多媒体支持的功能,包括转换特效、滤镜特效、路径控制、顺序控制、动画、制图、播放声音和影像等多媒体功能。
让我们再来看看NetscapeCommunicator4.0对DHTML所提供的支持:
1.动态排版样式(DynamicStylesSheets):
支援W3C的“CascadingStyleSheets”(串联式排版样式,简称CSS1或CSS)、和自创的“JavaScriptStyleSheets”。
2.DynamicLayers:
提供图文定位、改变图文重叠顺序、控制隐藏或显示图文、移动图文的功能,让您设计出“动画”的效果!
3.DynamicFonts:
提供由服务器下载字型的功能。
可见虽然IE4.0和NetscapeCommunicator4.0都提供了“DynamicHTML”的支持,但是事实上两者除了对“CascadingStyleSheets”的规格相近外,其余都相差甚远。
因此当你设计DHTML页面时必须充分考虑到兼容性的问题,选择称手的“兵刃”和方法对于设计者来说始终是最重要的。
有关DHTML的使用方法和设计技巧作者将在第二章《动态网页设计十八般武艺》中仔细讲解,请密切关注。
或许对于一个个人网站来说充分运用DHTML技术足以令网页栩栩如生,动感十足。
然而对于建立商业网站的企业而言,仅仅拥有DHTML是远远不够的。
因为仅仅发生在客户浏览器端的动态效果是无法满足商业网站大量信息查询,客户咨询,资源交互等“动态”需求的。
因此作为商业网站的设计者,必须要设计出更具实用性和交互性的“动态”网站。
由于绝大多数商业网站都具有大量的数据和信息,而建网的初衷也就是在于方便客户查询企业资料,方便同客户的交流,及时获得信息反馈。
那么,就必然会面临如何让使用者在浏览器界面中,通过互联网或内联网(Intranet)查询WEB数据库的资料,甚至输入、更新和删除WEB服务器上的资料。
下面笔者就简单介绍几种常用的“动态”网站设计方法:
1、CGI(CommonGatewayInterface)
通用网关接口的传统方式,当用户在浏览器端填好表单(form)要求输入的资料,提出HTTP请求后,WEB服务器端将执行一个表单所设定的可执行的CGI应用程序,CGI程序分析表单(form)中所输入的资料,存取WEB数据库,将查询执行的结果以HTML的格式返回给浏览器。
使用CGI方式存取WEB数据库,有很多的缺点,譬如不易开发、变更修改成本高、功能有限、不易侦错、执行速度慢等,而且由于并非整合于HTML文档之中,因此必须使用与HTML完全不同的设计过程来设计一个可执行的应用程序。
2、IDC(InternetDatabaseConnector)
互联网数据库连接头是WindowsNTServer内含InternetInformationServer(简称IIS)2.0的特征之一,它提供了一种使你的互联网数据库内容得以发布并可与用户交互的方法,它实际上是一个包含于IIS中的ISAPI应用程序。
你只需掌握HTML和SQL的基本知识并写为数不多的代码就能编出具有交互能力的数据库应用程序,让使用者在浏览器界面中得以查询、输入、更新、和删除WEB服务器上的数据资料。
正如VB程序员所喜欢的那样,构成IDC应用程序的文件是解释性的,由于设计简易,只要准备两个档案,即可在用户端的浏览器中存取WEB服务器的数据资料,且无须编译,因此具有快速的开发循环和反馈。
但这种简单性的代价是牺牲了许多灵活性,使你不得不放弃许多对用户接口的控制,并几乎放弃了所有验证数据的能力。
因而IDC仅适用于简单的WEB应用程序。
3、ActiveXDataObject(ADO)是WEB数据库应用的最佳选择。
ActiveXDataObject(简称ADO)究竟是什么呢?
ActiveXDataObject的技术,让您可以与ActiveServerPages(简称ASP)结合以建立提供数据资讯的网页内容,只需在网页面中执行StructuredQueryLanguage(结构化查询语言,简称SQL)指令,让用户在浏览器界面中输入、更新、和删除WEB服务器上的数据资料。
当用户端的浏览器填好表单所要求输入的资料并按下“Submit”按钮后,经过互联网、内联网传送HTTP请求到WEB服务器,该请求在WEB服务器执行一个表单所指定的ActiveServerPages程序(后缀名为.ASP的文档)。
一个.ASP文档是一个纯文字档,包括:
HTML标记(tags)、VBScript或JScript语言的程序代码、ASP语法、和结构化查询语言SQL指令。
IIS3.0/4.0WEB服务器执行.ASP文档,通过ODBC驱动程式,连接到支持ODBC的数据库上,执行ASP文档所指定的SQL指令,最后将执行的结果以HTML的格式传送给用户浏览器。
ADO具有容易使用、开发执行快速、消耗系统资源较少,和占用磁盘空间小等优点。
以上就是目前设计商业网站常用的“动态”技术,由于本人的工作和使用经验,笔者较倾向于ADO和ASP的结合,从长远来看这对搭档也势必成为今后一段时间内“动态”WEB的核心技术。
因此在本文第二章《动态网页设计十八般武艺》中,笔者将就ADO和ASP的使用进行展开讲述,敬请期待。
第二章简介
看了《引言》后,你是否已经急不可待地想构建属于你自己的动态网站?
本文将以ActiveServerPages为中心,向你全面展示制作动态商业网站的步骤和技巧。
上一章给大家简要介绍了建立动态网站的一些方法和制作工具,本章将以如何建立基于IIS的ASP动态网站为中心向大家一步一步地揭示动态商业网站设计的真正奥秘。
为了使各位能够全面、细致地掌握ASP的开发技巧,本文今后将采取连载的形式,手把手地教你如何建立属于自己ASP动态网站。
由于本文是作者根据自己的学习和实践经验并结合了一些外文资料而写成的,因此不免会有一些偏颇,希望各位见谅。
如发现本文有何不当之处,请及时通知作者,谢谢。
MicrosoftActiveServerPages即我们所称的ASP,其实是一套微软开发的服务器端脚本环境,ASP内含于IIS3.0和4.0之中,通过ASP我们可以结合HTML网页、ASP指令和ActiveX元件建立动态、交互且高效的WEB服务器应用程序。
有了ASP你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。
当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
以下罗列了ActiveServerPages所独具的一些特点:
1.使用VBScript、JScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。
2.无须编译,容易编写,可在服务器端直接执行。
3.使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。
4.与浏览器无关(BrowserIndependence),用户端只要使用可执行HTML码的浏览器,即可浏览ActiveServerPages所设计的网页内容。
ActiveServerPages所使用的脚本语言(VBScript、Jscript)均在WEB服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。
5.ActiveServerPages能与任何ActiveXscripting语言相容。
除了可使用VBScript或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言,譬如REXX、Perl、Tcl等。
脚本引擎是处理脚本程序的COM(ComponentObjectModel)物件。
6.ActiveServerPages的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。
7.可使用服务器端的脚本来产生客户端的脚本。
8.物件导向(Object-oriented)。
9.ActiveXServerComponents(ActiveX服务器元件)具有无限可扩充性。
可以使用VisualBasic、Java、VisualC++、COBOL等编程语言来编写你所需要的ActiveXServerComponent。
ASP的奇妙之处真是不胜枚举,下面就请各位系好安全带,我将带领大家进入ASP的梦幻世界。
首先,让我们来看看运行ASP所需的环境:
MicrosoftInternetInformationServerversion3.0/4.0onWindowsNTServer
MicrosoftPeerWebServicesVersion3.0onWindowsNTWorkstation
MicrosoftPersonalWebServeronWindows95/98
正如前文所述,与一般的程序不同,.asp程序无须编译,ASP程序的控制部份,是使用VBScript、JScript等脚本语言来设计的,当执行ASP程序时,脚本程序将一整套命令发送给脚本解释器(即脚本引擎),由脚本解释器进行翻译并将其转换成服务器所能执行的命令。
当然,同其他编程语言一样,ASP程序的编写也遵循一定的规则,如果你想使用你所喜爱的脚本语言编写ASP程序,那么你的服务器上必须要有能解释这种脚本语言的脚本解释器。
当你安装ASP时,系统提供了两种脚本语言:
VBsrcipt和JScript,而VBscript则被作为系统默认的脚本语言。
你也可以根据自己的喜好改变系统默认的脚本语言,关于如何改变系统默认的脚本语言请看《在ASP中使用脚本语言》一文。
ASP本身并不是一种脚本语言,它只是提供了一种使镶嵌在HTML页面中的脚本程序得以运行的环境。
但是,要学好ASP又必须掌握它的语法和规则。
现在就让我们开始一步一步地认识并学习ActiveServerPages。
ASP程序其实是以扩展名为.asp的纯文本形式存在于WEB服务器上的,你可以用任何文本编辑器打开它,ASP程序中可以包含纯文本、HTML标记以及脚本命令。
你只需将.asp程序放在WEB服务器的虚拟目录下(该目录必须要有可执行权限),就可以通过WWW的方式访问ASP程序了。
要学好ASP程序的设计,必须掌握脚本的编写,那么究竟什么是脚本呢?
其实脚本是由一系列的脚本命令所组成的,如同一般的程序,脚本可以将一个值赋给一个变量,可以命令WEB服务器发送一个值到客户浏览器,还可以将一系列命令定义成一个过程。
要编写脚本,你必须要熟悉至少一门脚本语言,如VBScript。
脚本语言是一种介乎于HTML和诸如JAVA、VisualBasic、C++等编程语言之间的一种特殊的语言,尽管它更接近后者,但它却不具有编程语言复杂、严谨的语法和规则。
如前所述ASP所提供的脚本运行环境可支持多种脚本语言,譬如:
JScript、REXX、PERL等等,这无疑给ASP程序设计者提供了广泛的发挥余地。
ASP的出现使得广大WEB设计者不必在为客户浏览器是否支持而担心,实际上就算你在同一个.asp文件中使用不同的脚本语言,你都无须为此担忧,因为所有的一切都将在服务器端进行,客户浏览器得到的只是一个程序执行的结果,而你也只需在.asp中声明使用不同的脚本语言即可。
下面是一个典型的在同一.asp文件中使用两种脚本语言的例子:
<%CallViewDate%>
SubCallme
Response.Write"
Call | Me |
"
EndSub
functionViewDate()
{
varx
x=newDate()
Response.Write(x.toString())
}
这是各位在本文中接触的第一个真正的ASP程序,千万不要被“<%%>”符号搞糊涂,这其实是标准的ASP定界符,而“”之间的就是脚本语言。
ASP不同于脚本语言,它有自己特定的语法,所有的ASP命令都必须包含在<%和%>之内,如:
<%test="English"%>,ASP通过包含在<%和%>中的表达式将执行结果输出到客户浏览器,如:
<%=test%>就是将前面赋给变量test的值English发送到客户浏览器中,而当变量test的值为Mathematics时,以下程序:
Thisweekendwewilltest<%=test%>.
在客户浏览器中则显示为:
ThisweekendwewilltestMathematics.
学习ASP最好的方法莫过于亲自动手编写,为了在最短的时间内使各位掌握ASP的程序设计技巧,本文将采取实例分析法,通过一系列的实例让各位在实践中学习ASP。
建立一个ASP页面,你所需的只是打开一个文本编辑器,如:
Notepad,然后跟我开始动手编写第一个ASP程序。
下面我们将建立一个自动监测浏览时间并根据不同时段动态显示不同页面内容的ASP程序,请将以下代码剪贴到你的文本编辑器中,并存为test1.asp:
<%IfTime<#12:
00:
00#AndTime>=#00:
00:
00#Then%>
早上好,今天天气不赖啊!
<%ElseIfTime<#19:
00:
00#AndTime>=#12:
00:
00#Then%>
下午好!
<%Else%>
哈喽!
今晚你有没有去IRC聊天!
<%EndIf%>
将test1.asp保存在WEB服务器的虚拟目录(如:
aspsamp/)下,并在浏览器中用HTTP的方式进行浏览,如:
http:
//yourcomputername/aspsamp/test1.asp,你将会新奇地发现,你的页面真的活起来了。
虽然,这只是一个非常简单的实例,而且这一功能完全可以通过JavaScript完成,但是不难发现使用ASP要比JavaScript简洁、迅速得多,而且运用此法,你完全可以轻而易举地令你的网页在不同的时段展示不同的风格。
此例中的“Time”实际上是一个VBScript内置的显示系统当前时间的函数,由于系统默认的脚本语言是VBScript,因此当你在ASP命令中调用该函数时,脚本引擎会自动将其转换成当前的系统时间。
接下来我们将给test1.asp添加一点色彩,在
标识中添加“bgcolor="<%=bgc%>”即变为
">,并在标记前添加如下语句:<%IfTime<#12:
00:
00#AndTime>=#00:
00:
00#Then
bgc="silver"
ElseIfTime<#19:
00:
00#AndTime>=#12:
00:
00#Then
bgc="navy"
Else
bgc="red"
EndIf
%>
如此一来,当用户在不同的时段访问你的页面时,他们将会看到不同的页面背景色。
我们可以做的事情还有很多,譬如你想知道在凌晨至十二点之间浏览你页面的客户的姓名,并向他或她问好,那么下面的这段程序将能助你达成心愿。
首先你需要在页面中设置表单,将以下HTML代码剪贴到“<%IfTime<#12:
00:
00#AndTime>=#00:
00:
00#Then%>”之后:
欢迎光临我的主页,请填写以下信息:
FirstName:
LastName:
Title:
Mr.