【asp源码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了asp源码-ASP网页设计制作 - 其它资料的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
第 1 章
ASP 学前准备
ASP 导论(
ASP 相关知识)1.2.1 什么是
ASP在Internet 风行的早期,Web 网页只是静态的图文组合,浏览者可以在网页上阅读信息,但无法做进一步的查询、发表意见或进行电子商务、在线交谈、问卷调查、预约订票、访客留言簿、讨论区、电子贺卡、E-MAIL 自动回复、数据库管理等工作,这显然不能满足人们越来越多元化的需求。
为此,开始有不少公司提出动态网页的解决方案,所谓的“动态网页”指的是浏览器端和服务器端可以互动,也就是服务器端可以实时处理浏览器端的请求(Request),然后将处理结果响音给浏览器端,而
ASP(Active Server Pages)便是微软用来建立动态网页的解决方案。
ASP 是一种服务器端的指令环境,用来建立并执行交互式Web 服务器应用程序,您可以使用
ASP 来结合服务器端指令、HTML 网页及COM 组件,换句话说,
ASP 程序包含“脚本语言程序” “嵌入HTML(Embedded HTML)“ COM 组件调用”等3 个 (Scripting Language) 、 ”部分,前者可由VBScriptJscript微软版的JavaScript、PerlScript、Python、REXX 等程序语言赚写而成。
也正由于
ASP 程序可以嵌入HTML,因此,现有的HTML 文件(扩展名为.htm)很快便可以转换成
ASP 程序(扩展名.
asp).
ASP 的第一个版本是0.9 测试版,它能够将代码直接嵌入HTML,使设计Web 页面变得更简单、更强大,并且通过内置的组件能够实现强大的功能,如ADO,AcitveX Data Objects组件,通过它可以访问任何符合ODBC(Open DataBase Connectivity)标准的数据库。
接着
ASP1.0 作为Internet 信息服务器(Internet Information ServerIIS)的附属产品免费发送,不久在Windows 平台上广泛应用。
1998 年,微软公司发布了
ASP2.0 版本,与1.0 版不同的是,2.0 增加了功能更加强大的外部组件。
在微软公司开发出Windows2000 操作系统后,
ASP 也升级到3.0 版本,目前的应用大多是在2000Server 和
ASP3.0 的环境下使用的。
1.2.2
ASP 的含义:(1)Active:
ASP 使用了Microsoft 的ActiveX 技术,它采用封装对象、程序调用对象的技术,简化编程,加强程序间的合作。
ASP 本身封装了一些基本的组件和常用组件,只要在服务器安装这些组件,通过访问组件,就可以快速、简易地建立Web 应用。
(2)Server:
ASP 运行在服务器端, 这样就不必担心浏览器是否支持
ASP 所使用的编程语言了。
(3)Pages:
ASP 返回标准的HTML 页面,可以在常用的浏览器器中正常地显示。
浏览者查看源文件时,看到的是
ASP 生成的HTML 代码,而不是
ASP 的程序代码,这样就可以防止别人抄袭自己的程序。
1.2.3
ASP 程序特点:1.使用VBScriptJavaScript 等简单易懂的脚本语言,结合HTML 代码,即可快速地完成网站应用程序的编写。
2.无需编译、容易编写,可在服务器端直接执行。
3.使用普通的文本编辑器,如Windows 的记事本,即可进行编辑设计。
4.与浏览器的无关性。
用户端只要使用可执行HTML 代码的浏览器1.2.4
ASP 的运行原理
ASP 本身的意义是从服务器端传送信息到客户端时的前置处理过程。
这项处理功能由嵌在服务器端的动态链接库(DDL)
asp.dll 来完成。
如果客户端要访问的是服务器端的”.HTM”文件,则服务器端直接把该文件传送给客户端。
如果客户端要访问服务器端是“.
ASP”文件,则服务器端会自动地解释执行该程序,并把结果信息转换成HTML 信息再传送给客户端。
如果客户端要访问的是服务器端“.SHTML”文件,则服务器端先对该文件做Include 处理,再把文件传送给客户端。
ASP 程序只能在Web 服务器端执行,当浏览器向服务器要求运行
ASP 程序时,服务器会读取该程序,然后执行该程序并将结果转换为HTML 文件,再将HTML 文件传送给浏览器,待浏览器收到HTML 文件之后,便会执行结果显示在浏览器上。
为了证明浏览器所收到的是HTML 文件,而非
ASP 程序,我们来看个例子,在这个例子中,凡是用lt和gt符号括起来的语句均为
ASP 程序,且程序的扩展名为.aspltLanguageVBScriptgtlthtmlgtltheadgtlt/headgtltbodygt现在时刻为lttimegtlt/bodygtlt/htmlgt1.3.1 浏览器端Script 与服务器端Script 有什么分别浏览器端Script脚本语言:严格来说,诸如HTML、XML 或CSS 所撰写的网页皆属于静态网页,无法满足每个人的需求,比方说,有人会希望网页显示实时更新的资料(如股票行情),而有人会希望当浏览者选取网页的某个组件时,组件的外观会随之改变,凡此种种都需利用程序才办得到,而且为了不影响传输速率,程序还得越小越好。
目前这类需求可以通过浏览器端Script 来完成,Script 是一段嵌入在HTML 源代码内的 小 程 序 , 而 浏 览 器 端 Script 就 是 在 浏 览 器 执 行 的 小 程 序 。
Netscape 公 司 开 发 的JavaScript和Microsoft 公司开发的VBScript 均可以用来撰写浏览器端的Script 其中尤其JavaScript 为主流, 因为市场上两大商用浏览器Communicator 和Internet Explorer 均支持JavaScript而VBScript 则只有Internet Explorer 才支持。
服务器端Script脚本语言:虽然浏览器端Script 已经可以完成许多工作,但有些工作还是得在服务器执行Script 才可以,譬如数据库的存取与搜索。
由于在服务器端执行Script 必须拥有特殊权限,而且会增加服务器端的负担,因此,如有可能的话,网页的设计者应尽量用浏览器端Script 必须或DHTML 技术取代服务器端的Script.目前常见的服务器Script 有
ASP 程序和CGI 程序两种,
ASP 是”Active Server Pages”的缩写,中文翻译为“动态服务器网页” ,
ASP 程序是Microsoft IISInternet InformationServices或PWS(Personal Web Server)等Web 服务器执行的Script通常是由Vbscript或JavaScript 撰写而成。
ltLanguageVBScriptgtlthtmlgtltheadgtlt/headgtltbodygt现在时刻为lttimegtlt/bodygtlt/htmlgtCGI 是“Common Gateway Interface”的缩写,中文翻译为“通用网关接口”,这是在服务器与程序之间传送信息的标准接口,而CGI 程序则是符合CGI 标准接口的Script通常是由 Perl 或 C 撰写而成。
第 2 章 VBScript 基本概念2.1 VBScript 是什么VBScript 程序语言是 Microsoft 公司 VB(Visual Basic)程序语言加以简化,使其较易学习,且完全以配合网页设计为发展重点,除去了有安全性顾虑的指令,诸如读写删除文件或者执行系统调用程序等,使设计者可安心地在 Internet 上传送。
此外,又加上合适其他操作系统可移植性,并大大提升了执行效率,使得 VBScript 广受网页设计者的欢迎。
2.2 撰写第一个 VBScript 程序ltscript languagequotvbsquotgtlt--msgbox quot欢迎光临敬请指正!quot--gtlt/scriptgt1.ltscript languagequotvbscriptquotgt…lt/scriptgt告诉浏览器使用 VBScript 脚本语言。
2.msgbox quot显示信息quot:msgbox 会在浏览器窗体中强制显示一个信息框。
双引号之间是信息框的内容。
3.一般 Script 程序代码会放在注释符号lt--…… --gt中间。
为了防止部分浏览器无法显示 VBScript 程序时,就把程序视为忽略。
2.3 变量(Variable)quot变量quot是程序中声明-个名字,它会使计算机提供一个预留的内存空间,您可以利用这个名字存储任何数字或文字。
一般程序语言在声明变量名称时,就必须指定变量的数据类型,但 VBScript 只提供用户一种变量类型,称为quot不定型数据类型quotVariant它可以存储任何类型的值,这对初学者而言又是一项非常方便的功能,因为不会被各种数据类型弄得晕头转向,也不会常常出现quot变量数据类型不匹配quot的错误信息。
2.4 第二范例ltscript languagequotvbsquotgt score75 变量score的值为75 msgbox quot您的成绩quot amp score score90 变量score的值改为了90 msgbox quot您的成绩已改为quotamp scorelt/scriptgt注:msgbox 中的quotampquot符号为字符串连接符号quotquot符号为注释符号。
2.4 数组数组就是很多的名称相同的变量聚集在一起,数组的用法和普通的变量是完全一样的,它也可以存入任何数据类型,唯一的不同点是它在内存中占据的是一块连续的空间,您可以依序给它们编号,再依编号来使用它们。
使用数组之前一定要先声明名称,这是和普通的变量不同的地方。
2.5 第三个范例ltscript languagequotvbsquotgt dim box9 box2100 msgbox quot数字1quotamp box1 msgbox quot数字2quotamp box2lt/scriptgt1.dim box9定义声明一个 0-9 的数组格式: dim 数组名2.redim score4可以重新定义一个数组格式:redim 数组名3.redim preserve 数组名n保留原来的数组2.6 第四个范例ltscript languagequotvbsquotgt dim score 定义一个不确定个数的数组 redim score3 重新定义变量的个数 score090 score186 score299 score354 crchr13 amp chr10 换行符号 msgscore0 amp cr amp score1 amp cr amp score2 amp cr amp score3 msgbox msg redim score4 score478 msgquotquot msg score0 amp cramp score1 amp cramp score2 amp cr amp score3 amp cr amp score4 msgbox msglt/scriptgtltscript2.7 常数什么是常数,常数是一种不会改变的数,也就是说它原来就存在于程序软件内,而且不会任意改变它所代表的值。
2.8 第五个范例ltscript languagequotvbsquotgt msgbox quotHELLOquot amp vbcrlf amp quotVBScriptquotlt/scriptgt2.9 第六个范例ltscript languagequotvbsquotgtconst pi3.14 定义圆周率为常数 circle3 areacircle2pi msgbox quot面积为quot amp arealt/scriptgt2.11 运算符(1) 数字运算符 加法运算 12315 - 减法运算 12-59 乘法运算 12336 / 除法运算 12/34 整数除法 732 指数 1231728 mod 余数 20 mod 32 amp 字符串连接 quot您quot amp quot好quot您好ltscript languagequotvbscriptquotgtA3B2 Msgbox quotAquotamp Aamp vbcrlf amp quotBquotamp Bamp vbcrlf amp_ quotABquot ampABamp vbcrlf amp_ quotA-Bquotamp A-Bamp vbcrlf amp_ quotABquot ampABamp vbcrlf amp_ quotA/Bquotamp A/Bamp vbcrlf amp_ quotABquotamp ABamp vbcrlf amp_ quotAmod Bquotamp Amod B amp vbcrlf amp_ quotABquot ampA Bamp vbcrlf amp_ quotAampBquotamp Aamp Blt/scriptgt2.13 比较运算符比较运算符会比较两个表达式,如果比较的结果是正确的,就会返回quotTrue(真)quot;如果比较结果是错误的,就会返回quotFalsequot。
例如:quot10lt20quot就会返回 True,quot10gt20quot就会返回False。
通常程序设计者可以根据比较运算符所返回的值,做不同的处理。
VBScript 常用的比较运算符整理如表:符号 注释 例子 返回值 等于 215188 Trueltgt 不等于 215ltgt188 Falselt 小于 183lt18 Falsegt 大于 183gt18 Truelt 小于等于 183lt21 Truegt 大于等于 183gt21 True2.14 逻辑运算符逻辑运算符是结合两个比较运算,再返回一个quotTruequot或quotFalsequot值:最重要的逻辑运算符是quotAndquot及quotOrquot.quotAndquot是两个比较运算都正确时,才返回 True,其余都返回quotFalsequot.quotAndquot和比较运算整理如表:第一个比较运算 第二个比较运算 例子 返回值True True 20gt21 and 50gt40 TrueTrue False 30gt21 and 50lt40 FalseFalse True 30lt21 and 50gt40 FalseFalse True 30lt21 and 50lt40 FalsequotOrquot是只要有一个比较运算正确的,就返回quotTruequot即指只有在两个比较运算错误时,才返回quotFalsequot其余都返回quotTruequot。
quotOrquot和比较运算的关系整理如表:第一个比较运算 第二个比较运算 例子 返回值True True 30gt21 or 50gt40 TrueTrue False 30gt21 or 50lt40 TrueFalse True 30lt21 or 50gt40 TrueFalse False 30lt21 or 50lt40 False2.15 第八个范例ltscript languagequotvbsquotgt msg1quot15gt12 and 40gt30 的值为quotamp 15gt12 and 40gt30 msg2quot15gt12 and 40lt30 的值为quotamp 15gt12 and 40lt30 msg3quot15lt12 or 40gt30 的值为quot amp 15gt12 or 40gt30 msg4quot15lt12 or 40lt30 的值为quotamp 15lt12 or 40lt30 msgbox msg1 amp vbcrlf amp msg2amp vbcrlf amp msg3 amp vbcrlf amp msg4lt/scriptgt 第 3 章 VBScript 流程控制3.1 认识流程控制结构我们上一章所用的范例都是一些相当简单的程序。
所谓的“简单”就是指程序执行只有一个由上而下的方向,而不会转弯或跳行,但实际上平常所应用的程序并不会这么简单,一般的程序都会依据不同的情况而换行, 因为这样的程序才能应付各种不同的情况, 这时就需要流程控制结构来帮组设计师控制程序执行的方向。
流程控制结构通常要借助逻辑数据的帮助才能运行,流程控制结构共有 6 种,我们一一来介绍。
3.2 if 的第一种格式:如果...就...(单一选择)if 条件 then 程序代码这是 if 指令最简单的格式“单一选择”,其中的“条件”是一个表达式,它所计算的结构必须是一个逻辑数据,如果“条件”的计算结果是 , “True” 那么就会执行 Then 后面的“程序代码”;如果“条件”的计算结果是“False” ,那么就会跳过整个 if 语句,而不会执行 。
Then 后面的“程序代码”如果跟 Then 不是同一行或是程序代码Then 后面的“程序代码”有很多行,那就要在最后加上 end if 以结束 if 条件语句。
ltscript languagequotvbsquotgt score70 if scoregt60 thenmsgbox quot及格quotlt/scriptgt3.3 if 的第二种格式:如果...就...否则...(双向选择)if 条件 then 程序代码一else 程序代码二end ifltscript languagequotvbscriptquotgt scoreInputBoxquot请输入计算机成绩:quotquot输入成绩quot if scoregt60 then msgquot及格!quotelse msgquot不及格!quot end if msgbox quot您的计算机成绩quotamp msglt/scriptgt3.4 输入函数 InputBox 用法变量InputBoxquot显示信息quotquot窗口标题quotInputBox 函数可以提供对话框让用户输入信息,并将用户输入的信息存入等号左边的变量中;3.5 if 的第三种格式:多向选择if 条件 then 程序代码一elseif 程序代码二elseif 程序代码三............else 程序代码 Nend ifltscript languagequotvbsquotgtscoreInputBoxquot请输入计算机成绩:quotquot输入成绩quotif scoregt90 then msgquot优等quotelseif scorelt90 and scoregt80 then msgquot甲等quotelseif scorelt80 and scoregt70 then msgquot乙等quotelseif scorelt70 and scoregt60 then msgquot丙等quotelse msgquot丁等quotend ifmsgbox quot您的计算机成绩为quotamp msglt/scriptgtlt3.6 select...case这种流程控制结构可以根据一个变量的值而有不同的执行方向。
select case 变量case 值一 程序代码一case 值二 程序代码二case 值三 程序代码三...case else 程序代码 Nend selectltscript languagequotvbsquotgtnoInputBoxquot请输入一个1-5之间的数字:quotquot汉译英quotselect case nocase 1 msgquotONEquotcase 2 msgquotTWOquotcase 3 msgquotTHREEquotcase 4 msgquotFOURquotcase else msgquotFIVEquotend selectmsgbox no amp quot的英文为quotamp msglt/scriptgt3.7 for-next (计数循环)计算机最擅长的功能就是重复执行某项功能,如果每执行一次就要写一次程序代码的 “循环”指令就是用来解决重复执行的问题。
话,大部分的程序必然非常的庞大,for 变量=起始值 to 终止值step 步长ltscript languagequotvbsquotgttotal0for i1 to 10 totaltotalinextmsgbox quot1 加到10 的总和为quotamp totallt/scriptgtltscript languagequotvbsquotgttotal0for i2 to 100 step2 totaltotalinextmsgbox quot246…100quotamp totallt/scriptgtltscript languagequotvbsquotgt用循环显示九九表document.write quotlttable border4gtquotfor i1 to 9 totalquotlttrgtquotfor j1 to 9 totaltotalamp quotlttdgtquot amp iamp quotquotamp iamp quotquotamp ij amp quotlt/tdgtquotNext totaltotalamp quotlt/trgtquot document.write totalNextdocument.write quotlt/tablegtquotlt/scriptgt注:document.write 是浏览器中的一个方法,在浏览器中有许多对象的属性和方法可供设计人员使用,浏览器将自己本身的各部分,包括窗口、属性、标记等分成各种对象,而每个对象又提供不同的属性和方法。
ltscript languagequotvbsquotgtdim a99for i0 to 99 aii1 document.write ai amp quotltbr /gtquotnextlt/scriptgtltscript languagequotvbsquotgtdim score3score090score186score299score354用循环打印每一位学生的成绩 for i0 to 3 msgmsg amp quot第quotamp i1 amp quot个学生分数为quotamp scorei amp vbcrlfnextmsgbox msglt/scriptgt3.8 条件式循环do while…loop 循环格式: do while 条件程序代码loop 这中循环在执行到 do while 时会检查”条件”的返回值若返回值为”True”就执行”程序代码”碰到 loop 时又回到 do while 再检查”条件”的成立与否.若”条件”的返回值为”False”则跳到 loop 的下一个指令即离开循环.此处的”条件”弹性很大只要”条件”为”False”时就会结束循环不必限制循环执行的次数使用范围比 for…next 大很多.ltscript languagequotvbsquotgt英文单词测试不管大小写都正确ansinputboxquot请输入”快乐”的英文quotdo while ucaseansltgtquotHAPPYquot msgquot不正确quotamp vbcrlf amp quot请重新输入”快乐”的英文quot ansinputboxmsgloopmsgbox quot太棒了您答对了quotlt/scriptgt注:ucase函数可将括号内的字符串全部转换为大写字母3.9 Do Until…Loop 循环格式: Do Until 条件程序代码LoopUntil 循环与While循环不同点就在于Until是测试”条件”是否不成立也就是是否为”False”若是”False”则执行循环内的”程序代码”反之则跳出循环.ltscript languagequotvbsquotgt 英文单词测试不管大小写都正确 ansinputboxquot请输入”快乐”的英文quot do until ucaseansquotHAPPYquot msgquot不正确quotamp vbcrlf amp quot请重新输入”快乐”的英文quot ansinputboxmsg loop msgbox quot太棒了您答对了quotlt/scriptgt3.10 While…Wend 循环这种循环和 Do…Loop 完全一样.ltscript languagequotvbsquotgt 英文单词测试不管大小写都正确 ansinputboxquot请输入”快乐”的英文quot while ucaseansltgtquotHAPPYquot msgquot不正确quotamp vbcrlf amp quot请重新输入”快乐”的英文quot ansinputboxmsg wendmsgbox quot太棒了您答对了quotlt/scriptgt 第 4 章子程序与函数4.1 子程序Subroutines什么是子程序?“子程序”是将一段具有某种特定功能的语句区块单句撰写成一个独立的程序,给予特定的名称,它的格式如下:sub 子程序名称参数 1参数 2.. . 程序代码end sub子程序一定要有名称,调用子程序时就会使用到它的名称。
如果没有调用它,子程序并不会执行,请看下面范例。
ltscript languagequotvbsquotgt msgbox quot我在外面quot sub A msgbox quot我在里面quot end sublt/scriptgtltscript languagequotvbsquotgt msgbox quot我在外面quot A sub A msgbox quot我在里面quot end sublt/scriptgt4.2 调用子程序名称参数 1参数 2...方法一:call 子程序名称参数 1,参数 2 。
方法二:子程序名称参数 1,参数 2。
。
ltscript languagequotvbsquotgt sub changc degreec1.832 msgbox quot摄氏quot amp c amp quot度转换为华氏quotamp degree amp quot度quot end sub degreecinputboxquot请输入摄氏度:quot chang degreeclt/scriptgtltscript languagequotvbsquotgt msgbox quot我在外面quot A msgbox quot我在后面quot sub A msgbox quot我在里面quot end sublt/scriptgt4.3 局部变量和全局变量ltscript languagequotvbsquotgt A msgbox quoti 等于quotamp i sub A i10 end sublt/scriptgt为什么这里弹出的信息框 I 的值为空呢,因为子程序里面的 I 变量是局部变量,到子程序外面已经超出了变量 I 的有效范围所以到了子程序之外后变量“I”失效了。
ltscript languagequotvbsquotgt dim i A msgbox quoti 等于quotamp i sub A i10 end sublt/scriptgt这个程序在子程序之外先用“DIM I”对变量“I”进行声明,这时变量“I”就会变成了“全局变量”,所谓的全.