asp网络程序设计

更新时间:2024-02-02 01:13:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

网络程序设计ASP

指导思想:

制作一个性能卓越的动态网站,需要具备HTML、VBSCRIPT、ASP/PHP等多方面的知识,并且要熟悉掌握DREAMWEAVER等多种工具。

学习动态网站制作,力争做到学以致用。掌握网站技术好坏程度的标准不是背熟各条命令,而是能够自己动手制作功能完善、页面精美的网站。

动态网站的制作可以从模仿实例开始,通过大量的典型实例掌握最常见的命令及操作,在熟练的基础上慢慢体会加入个人的创意,提高自己解决实际问题的能力。

因此,学习动态网页制作不是一条一条地背熟各种命令,而是通过实例把把零散的命令穿成一条项链,理解各种常用技术、操作的含义和实现手段。学习动态网页应掌握主要的命令、最常见的操作,其他不常用的命令、余下的“细枝末节”可以在解决实际问题中慢慢体会、学习。

网站制作要求有很强的实践应用能力,学习操作最重要的是用它来开发网站。这种能力不是靠死读书获取的,需要花大量的时间上机实践,可以说,网站制作能力的提高是与上机时间成正比的。

其实,HTML、ASP、DREAMVEAVER不是一个专业,也不是理论课程,而是工具。所以在学习中应当以强调应用为主,不是从理论入手,而应从实际问题入手。

第1章 网络程序设计概述

教学内容:

1. 介绍网络程序设计语言的产生背景 2. WWW的工作原理

3. 主要的网络程序设计语言

教学要求:

1. 了解服务器端和客户端的概念 2. 了解有哪些网络程序设计语言

1.1网络程序设计语言的产生背景

Internet的起源推动了网络程序设计语言的发展,Internet起源于美国国防部1969年开发的ARPAnet网。

最初的网页主要显示一些静态信息,用HTML来实现,但是不能实现用户的交互,必须打开HTML源代码修改,不能在线修改信息。

WWW从最初的提供信息资源,发展为远程教育、电子商务、电子管理等多种功能。

1.2 WWW的工作原理

1. 什么是服务器端、客户端

凡是提供服务的一方称为服务器端,接受服务的一方称为客户端。

服务器端和客户端并不是绝对的,如果服务器端接受别的服务器端的服务,它就转化成客户端;反之,客户端为别的客户端提供服务,就成为服务器端。

不同之处在于:

当你借助某个工具查看由前者而实现跳转功能的页面的时候,你会看到此页中含有

Response.Redirect跳转的ASP网页的时候,你是看不到Response.Redirect的,你看到的却是目标网页的源代码。

简单地说,服务器端是远程服务器,运行结果是由服务器产生的;客户端就是网友的电脑。所有的动态网页都是在服务器端执行的,例如ASP、PHP、JSP;所有的静态网页都是在客户端执行的,例如JavaScript、Flash都是属于静态网页。

再举个例子,例如你使用JavaScript写了一个显示日期的程序,它显示的只是客户端的系统日期,如果你修改了你的电脑的系统日期,那么这个JavaScript程序的运行结果也会变。 而如果使用ASP编写了显示日期的程序,如<%=date%>,显示的则是服务器的日期。如果你修改了你的电脑的系统日期,这个显示结果是不会变的。

2. 静态网页的工作原理

静态网页是指该网页里没有程序代码,只有HTML标记,以.htm或..html保存。它的内容是固定不变的,除非修改源代码,上传到服务器上。

其工作原理如下:

用户在浏览器里输入一个URL地址后,向服务器端提出了一个浏览网页的请求。服务器接到请求后,会查找要浏览的静态网页,发送给用户。

3. 动态网页的工作原理

动态网页,指该网页不仅含有HTML标记,而且包含程序代码,这种网页有特定的后缀,如.asp。动态网页能根据不同的时间、不同的来访者而显示不同的内容。如用户登录、BBS、留言板、搜索引擎等。

例:百度为用户传递搜索信息,并动态创建网页,URL

http://www.http://www.wodefanwen.com//baidu?tn=haojie&word=asp,?字符后的内容都是查询字符串。

其工作原理:

用户在浏览器里输入一个URL地址后,向服务器端提出了一个浏览网页的请求。服务器端接到请求后,首先找到浏览的动态网页文件,然后执行网页文件中的程序代码,将含有程序代码的动态网页转化为标准的静态网页,再将静态网页发送给用户。

由客户机向服务器发出的请求主要有两种:

一种类型,客户机可请求服务器给它发送资源(如图片或MP3文件),这种类型称为GET请求,因为它从服务器中“取得”信息。

第二种类型,客户机可请求服务器处理它所发送的资源,称为POST请求,因为客户机要将住处提交给服务器进行处理,然后等待响应。

当用户使用GET或POST向服务器请求资源时,服务器对这些请求作出响应并返回适当的数据。但是,一旦信息返回给客户机,服务器就“忘记了”所有有关客户机的信息。这是因HTTP是无状态协议,有关连接和该连接另一端的信息----在从一个请求到另一个请求之间的这段时间内不被保留。

为此,有两种解决方法;

一是将有关客户机的选择信息存储在临时位置中,当用户浏览该网站时,临时位置一直存在。当用户浏览到应用程序的范围之外,或关闭浏览器时,服务器可以删除该临时数据。

二是将有关客户机选择的信息存储在客户计算机上,放在一个名为cookie的小文件中。

1.3主要的网络程序设计语言

1. ASP

全称为Active Server Pages,活动服务器页面,是微软推出的代替CGI的动态服务器网页技术,一般接合ACCESS数据库或SQL Server数据库开发程序。

ASP文件可运行在各种Wdows界面上,需在服务器端安装IIS组件,如果是WIN98安装PWS组件。

ASP包含了使用VB Script或Jscript脚本程序代码的网页。当浏览器浏览ASP网页时, Web服务器就会根据请求生成相应的HTML代码然后再返回给浏览器,这样浏览器端看到的 就是动态生成的网页。

ASP是一个服务器端脚本编写环境,A所使用的脚本语言都在服务端上 运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。此外,它可通过内置的组件实现更强大的功能,如使用ADO可以轻松地访问数据库。

2. Asp.net

ASP之后,微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,而是用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。提供基于组件、事件驱动的可编程网络表单,大简化了编程。还可以用ASP.NET建 立网络服务。

ASP与ASP.NET的区别 I. 开发语言不同

ASP仅局限于使用脚本语言来开发,用户给WEB页中添加ASP代码的方法与客户端脚本中添加代码的方法相同,导致代码杂乱。

ASP.NET允许用户选择并使用功能完善的编程语言,也允许使用潜加巨大的.NET Framework。

II. 运行机制不同

ASP是解释运行的编程框架,所以执行效率加较低。

ASP.NET是编译性的编程框架,运行是服务器上的编译好的公共语言运行时库代码,可以利用早期绑定,实施编译来提高效率。

III. 开发方式

ASP把界面设计和程序设计混在一起,维护困难。

ASP.NET把界面设计和程序设计以不同的文件分离开,复用性和维护性得到了提高。

3. PHP

PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写。

可以运行在UNIX、Linux或Windows操作系统下,对客户机没有要求,但运行环境安装较复杂。

PHP与微软的ASP颇有几分相似,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言, PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。

PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序,只要直接执行内存中的代码就可以。它也可以被编译为一个 Apache 模块,或者是一个CGI二进制文件。

PHP具有非常强大的功能,支持几乎所有流行的数据库以及操作系。

PHP、MySQL数据库和Apache web服务器是一个比较好的组合。

4. JSP

JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。

它是在传统的网页HTML文件 (*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。

1.4 作业:

1. 什么是静态网页、动态网页、服务器端、客户端 2. 静态网页的工作原理 3. 动态网页的工作原理

4. 客户机向服务器端发出的请求有几种类型?

第2章 ASP初步

教学内容:

1. ASP的运行环境介绍

2. 如何新建、保存和浏览简单的ASP文件

教学目的:

1. 掌握IIS的安装,设置虚拟目录; 2. 掌握ASP站点的设置;

3. 编辑、保存ASP文件,并能浏览

2.1 ASP的运行环境

学习ASP,必须建立ASP的运行环境; 作为服务器端作如下安装: 1)Window Vista+IIS7.0 2)Windows2000+IIS5.0 3)Windows xp+IIS5.0 4)Windows 98+PWS4.0

5)Windows NT4.0+Windows NT Option Pack

1. Windows xp下安装IIS运行ASP

选择“开始”---“设置”----“控制面板”命令,弹出“控制面板”窗口; 双击“添加/删除程序”图标,弹出“添加/删除程序”窗口;

单击窗口中左侧的“添加/删除Windows 组件”图标,弹出“Windows组件向导”窗口; 在“组件”中选择栏中选取“Internet信息服务(IIS)”,单击“下一步”,进行IIS的安装。 安装完毕, 在浏览器中输入http://localhost,如能显示出IIS欢迎字样,表示安装成功。

选择“开始”---“程序”---“管理工具”---“Internet服务管理器”,会出现“Internet信息服务”窗口。

I. 浏览ASP文件

可采用以几种方式之一来浏览ASP文件:

http://localhost/temp.asp http://127.0.0.1/temp.asp

http://计算机的名字/temp.asp

http://计算机的IP 地址/temp.asp(一般是别人通过Internet访问你的计算机)

II. 添加虚拟目录

选中“默认WEB站点”,弹出快捷菜单,选择“新建”—“虚拟目录”,添加别名即可。 注意:虽然别名可以随意起名,但为了便于管理网页文件,最好将别名和站点名、站点文件夹保持一持。

III. 设置默认文档

默认文档指系统会自动查找执行的文档。选中新添加的虚拟目录弹出快捷菜单,选择“属性”命令,出现“属性”对话框,在其中添加index.asp、index.htm等默认文档。

IV. 浏览虚拟目录下的文件

http://localhost/虚拟目录名/文件夹名/文件名.asp http://127.0.0.1/虚拟目录名/文件夹名/文件名.asp 或打开““开始”---“程序”---“管理工具”---“Internet服务管理器”,会出现“Internet信息服务”窗口,选择默认站点下的虚拟目录,选择一个ASP文件用单击右键的,在菜单中选择“浏览”即可。

V. 运行环境小结

在c:\\inetpub\\wwwroot下建立子文件夹; 为该文件夹添加虚拟目录; 为该虚拟目录设置默认文档; 在该文件夹下建立ASP文档。

2. vista 装iis 并运行asp

IIS在windows xp专业版中的设置是非常简单,但是在windows vista中,由于vista考虑到系统的安全性,还是需要一些设置才能正常使用ASP+ Access。

I. 安装IIS7.0

第一步:进入Vista的 控制面板,选择左侧的 打开或关闭Windows功能 。 第二步:安装IIS7的选项设置。

单击后会出现安装Windows功能的选项菜单,注意选择的项目,因为Vista的IIS7的默认安装选项中是不支持ASP和ASP.NET的,因此在安装的时候必须手动选择需要的功能。

第三步:安装完成后,再次进入控制面板,选择“ 管理工具”,会在管理工具下面会多出 IIS6的管理工具选项,选择“管理工具------Internet信息服务管理器”进行IIS7的设置。

第四步:设置IIS7。选择 Default Web Site,并双击 ASP 的选项;

IIS7中ASP 父路径是没有启用的,要用ASP,首先要开启父路径,选择True。

第五步:IIS7的站点设置。 右键单击 Default Web Site 选项,选择“ 高级设置”选项。在下面对话框中设置网站的主目录 ,访问的端口 等设置。

II. 设置目录权限

按照上面的步骤在Windows vista中只能调试ASP的程序,但是还是无法调试ASP+Access程序,这是因为windows vista的目录权限问题。

第一步:需要设置权限的目录路径如下:系统安装盘:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local,最好是手动输入路径,因为从Appdata的文件是隐藏的。右键单击 Temp文件夹,选择 属性。

第二步:选择“安全” 选项,单击“编辑” 按钮,进入 编辑权限 的对话框。 第三步:选择“添加”按钮,添加用户。

第四步: 选择“用户或组”的对话框中,在 输入对象名称来选择 的表单中,输入大写字幕A后,单击 “ 确定”,系统会自动显示所有带有字幕A的系统用户。

第五步:在系统列出的用户中,选择 Athenticated Users 这个用户,并单击确定。 第六步:添加完成这个用户以后,选择添加的用户,单击 完全控制,然后确定。

我2.2 ASP的开发工具

对于初学者,可以使用记事本、FrontPager来进行ASP的代码设计;

为提高网页编写效率,可使用专用的开发工具进行ASP编辑,如EditPlus,下载网址http://www.editplus.com;它可将ASP脚本语言与HTML语言分开颜色显示;或者DreamWeaver,建立站点,进行编辑,可直接进行ASP文件的预览。我们这里使用Dreamweaver做为ASP的开发工具。

2.3 制作简单的ASP文件

1. 新建ASP文件

在DREAMWEAVER 中新建一个ASP文档,在代码编辑状态下输入内容:

<% if Time<#12:00:00# and Time>=#00:00:00# then %> 早上好,今天天气不错呵!

<% else if Time<#19:00:00# and Time>=#12:00:00# then %> 下午好! <% else %>

今晚您聊天了吗? <% end if %>

2. 保存文件

选择“文件”---“保存”命令,弹出一个“文件另存为”对话框,将文件保存在指定的文件夹内,单击“保存”。

3. 浏览ASP文件

打开IE,输入文件的IP地址浏览文件。

4. 在Dreamweaver 2004 MX下设置管理站点

开发工具Dreamweaver 2004 MX,能方便的创建、调试和运行ASP程序。 I. 设置站点

在给网页程序设置管理站点,首先要设置好虚拟目录,例如实际路径d:\\myasp,它的虚拟目录名为myasp,在DW中的管理站点名设为“ASP实验站点”,则具体操作如下:

第一步:启动Dreamweaver 2004 MX程序,选择“站点→站点管理”,则出现对话框: 第二步:单击“新建”按钮,选择“站点”,则屏幕显示: 输入站点名:ASP实验站点;单击下一步,显示如下对话框; 第三步:选择单选按钮:“是,我想使用服务器技术”,然后根据下拉菜单选择:ASP VBScript。单击下一步;

第四步:选择文件存储的实际位置,为:d:\\myasp。单击下一步,继续显示如下:

第五步:输入该管理站点浏览的根目录:http://localhost/myasp/,然后单击“测试URL(T)”按钮,来测试设置是否成功。

注:myasp即为前面已经设置的路径为:d:\\asptemp 的虚拟目录名。 测试成功,再单击“下一步“:

第六步:选择单选按钮“否”,单击“下一步”则出现站点定义总结,然后按“完成“按钮,则结束对管理站点的设置。

II. 在Dreamweaver中运行ASP文件

打开 Dreamweaver2004 MX,然后选择已建立的“ASP实验站点”,在其下进行创建、编辑和运行文件。

将网页保存到形如d:\\myasp\\目录下,文件可命名为first.asp。 选择“在浏览器中预览”,注意观察输出结果。

2.4 ASP的语法简介

ASP文件就是在标准的HTML文件中嵌入了VBScript脚本,放在<% %>标记对中。

1. ASP文件的基本组成

三部分:

◆普通的HTML文件;

◆服务器端的Script程序代码,位于<% %>内的代码; ◆客户机的Script程序代码,位于内。

2. ASP文件的约定

◆代码必须放在<% %>内;

◆在ASP中,Vbscript是默认的脚本语言;

◆<%@LANGUAGE=\放在文件的第一行。 lx.asp

? <%@LANGUAGE=\? ? ? ASP文档 ?

Submit.htm

? ?

username: ?

?

?

password: ? ?

?

?

? ? ?

CodePage:定义用于在浏览器中显示页内容的代码页。代码页是字符集的数字值,不同的语言使用不同的代码页。例如,ANSI代码 页为1252,日文代码页为932,简体中文代码页为936。

一般情况下,上传到国外网页空间,或者提取数据库记录等出现乱码时,就采用这种方法解决。

2.5开发ASP程序时的注意事项

◆字母不分大小写;

◆字符串以外用到的标点符号,必须在英文状态下输入; ◆ASP语句必须分行写; ◆ <% %>的位置相对随便; ◆ 养成良好的书写习惯,程序设计时进行恰当的缩进,阅读起来方便易懂; ◆ 编写ASP源程序时,可先设计好网页格局,再将脚本语言插入到HTML语句中;以提高程序编写效率;

2.6 作业:

1. 自己搭建ASP的运行环境;

2. 在移动磁盘上建立一个自己的目录myasp,并将其设置为虚拟目录myasp,设置默认文档为index.asp。

3. 在DreamWeaver中建立自己的站点myasp,站点文件夹就是上面创建的myasp文件夹。

4. 自己设计一个ASP文件;显示来客访问时期,并根据不同时段给出问候;

第3章ASP脚本语言—VBScript

教学内容:

1. 2. 3. 4.

VBScript的数据类型 VBScript常量与变量 VBScript函数与过程

VBScript条件语句与循环语句

教学目的:

1. 2. 3. 4. 5. 6. 7. 8. 9.

熟练掌握变量的声明、赋值、引用和命规则 掌握各种运算符的使用;

掌握几种常用的转换函数:Cstr,Cint,Cdate

掌握常用的字符串函数:Len,Mid,Trim,Replace,Lcase,Ucase等 会使用日期函数:Date,Time,Now,Weekday 掌握数学函数中的Rnd,Int

掌握子程序与函数的声明与调用,形式参数与实际参数 会使用For…Next ,Do…Loop循环语句设计程序 会使用If…else…end if, Select …case条件语句

3.1脚本语言概述

可以嵌入到HTML页面中,通过浏览器来解释运行的程序代码。

ASP本身不是一种脚本语言,它为嵌入HTML页面中的脚本语言提供了运行的支持环境,在ASP中常用的脚本语言是VBScript和JavaSCript,前者是ASP默认的脚本语言;

JavaSCript最初叫LiveScript,由网景公司推出的一种脚本语言,后随着网景浏览器2.0的发行而改名为此;VBScript脚本语言是微软公司开发的脚本语言,基于VB语言,简单易学。

脚本语言有两种可用的形式:客户端JavaScript、VBScript和服务端JavaScript、VBScript。前者指程序在本地浏览器上运行,后者指程序在服务器而不在客户机上运行。

在客户端运行的脚本语言放在标记对中,在服务器端运行的脚本语言放在<% %>标记中。

3.2 VBSript代码的基本格式

在服务器端添加的VBScript代码放在ASP文件中,形式: <%VBScript 代码%> 或

注意:在ASP程序编写时,文件开始一定加上<% language=”VBSCript”%>;在普通ASP文件中加入VBScript代码使用前一种简写形式;在Global.asa文件中加入VBScript代码使用后

一种方式。

只在客户端加入VBScript代码,一般放在HTML文件中,形式:

3.3 VBSript的数据类型

VBScript 只有一种数据类型,称为 Variant。最简单的 Variant 可以包含数字或字符串信息。Variant 用于数字上下文中时作为数字处理,用于字符串上下文中时作为字符串处理。如果使用的数据只可能是字符串,则 VBScript 将按字符串处理。

Variant 子类型:

除简单数字或字符串以外,Variant 可以进一步区分数值信息的特定含义。例如使用数值信息表示日期或时间。此类数据在与其他日期或时间数据一起使用时,结果也总是表示为日期或时间。大多数情况下,可将所需的数据放进 Variant 中,而 Variant 也会按照最适用于其包含的数据的方式进行操作。下表显示 Variant 包含的数据子类型: 子类型 Empty Null Boolean Byte Integer Currency Long Single Double 描述 未初始化的 Variant。对于数值变量,值为 0;对于字符串变量,值为零长度字符串 (\。 不包含任何有效数据的 Variant。 包含 True 或 False。 包含 0 到 255 之间的整数。 包含 -32,768 到 32,767 之间的整数。 -922,337,203,685,477.5808 到 922,337,203,685,477.5807。 包含 -2,147,483,648 到 2,147,483,647 之间的整数。 包含单精度浮点数,负数范围从 -3.402823E38 到 -1.401298E-45,正数范围从 1.401298E-45 到 3.402823E38。 包含双精度浮点数,负数范围从 -1.79769313486232E308 到 -4.94065645841247E-324,正数范围从 4.94065645841247E-324 到 1.79769313486232E308。 包含表示日期的数字,日期范围从公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日。 包含变长字符串,最大长度可为 20 亿个字符。 包含对象。 包含错误号。 Date (Time) String Object Error 可以使用转换函数来转换数据的子类型。另外,可使用 VarType 函数返回数据的 Variant 子类型。

3.4 VBSript的常量

常量是具有一定含义的名称,用于代替数字或字符串,其值从不改变。VBScript定义了许多固有常量。

<%

Const PI=3.14156 S=PI*2 %>

常量一般用大写,其命名可使用字母、数字、下划线等,但第一个字母必须是英文字母。不能使用关键字。

注意:全局常量只在一个网页有效。

1.创建常量

使用Const语句在VBScript中创建用户自定义常量。使用Const语句可以创建名称具有一定含义的字符串型或数值常量,并给他们赋值。

如:

<% Const PI=3.1415926

Const UserDate=#2007-03-01# %>

2. 引用常量

常量定义过后,就可以在程序的其他地方引用了。如: <%

Const PI=3.1415926 Area=PI*4*4; %>

注意:常量的命名规则和一般的程序设计语言一样,可以用字母、数字、下划线,首字符必须是英文字母,长度最大255个字符。不能使用VBScript的关键字做常量名。命名常量要科学有一定含义。

一般地:字符串文字包含在两面个引号(” ”)之间。日期文字和时间文字包含在两个(#)号之间,例如:

Const CutoffDate=#6-1-97#

3.VBScript的通用常量: Ture:表示布尔真值 False:表示布尔假值

Empty:表示变量尚未初始化

Nothing:表示对象没有引用任何变量 Null :表示不含有效数据的变量

3.5 VBSript的变量

变量是存储在内存中的用来包含数据的计算机内存地址的名字,变量定义后可随进对其值进行修改;如:可以创建一个名为ClickCount的变量来存储用户单击Web页面上某个对象的次数。使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。

1.声明变量 <% Dim a %>

声明多个变量时,使用逗号分隔变量。例如: Dim Top,Bottom,Left,Right

VBScript中,用变量前可以不定义先使用,赋值后自动定义。如果输错变量,会出现一个新变量,引起程序运行错误。

为避免这种变量不一致引起的错误,可以在ASP文件中定义语句要求变量先定义后使用。 <%

Option Explicit

Dim a,b,c A=3 %>

注意:变量的作用范围只在当前网页有效。

2.变量引用 <%

dim a,b,c a=5 b=5 c=a+b %>

3.变量名命名规则:同常量命令规则

3.6 VBScript数组

有时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,称为数组变量。数组就是存储在内存中的用来包含数据的一组地址的名字。下例声明了一个包含11个元素的一维数组: Dim A(10)

定长数组: <%

dim a(3) a(0)=1 a(1)=1 a(2)=2 %>

另外也可声明一个变长数组,或称为动态数组,如: <% dim a() redim a(3) %>

注意:VBSCript中的数组从0开始;

也可以定义多维数组,如二维数组; <%

dim a(2,4)

a(1,2)=”大家好” %>

3.7 VBScript运算符

VBScript继承了VB的所有类别的运算符,有算术运算符、比较运算符、逻辑运算符、连接运算符等。

当表达式包含多种运算符时,首先计算算术运算符,然后计算比较运算符,最后计算逻辑运算符。所有比较运算符的优先级相同,即按照从左到右的顺序计算比较运算符。

算术运算符和逻辑运算符的优先级如下所示: 算术运算符 描述 求幂 负号 乘 除 整除 求余 加 减 字符串连接 符号 ^ - * / \\ Mod + - & 比较运算符 描述 等于 不等于 小于 大于 小于等于 大于等于 对象引用比较 逻辑运算符 符号 = <> < > <= >= Is 描述 逻辑非 逻辑与 逻辑或 逻辑异或 逻辑等价 逻辑隐含 符号 Not And Or Xor Eqv Imp

算术运算符和连接运算符是常用的运算符: <%

sum=a*5+6/8

char=”welcome”&username str=”welcome”+username %>

比较运算符用来连接两个数字、两个字符串或两个日期,常在判断句中应用; <%

result=a>b if a>b then %>

逻辑运算符常用来进行逻辑运算,常用And,or,Not <%

Result=a And b Result=a or b Result=Not a %>

3.8 VBScript函数

函数是将复杂的功能编成了一个程序,用户直接引用这个程序就可以完成功能,不须了解内部如何计算。常用的VBScript函数有以下几种:

1.转换函数

用来强制转数据,常用的转换函数如下:

I. CBool函数:CBool(Variant)

Variant(变量)转换为 Boolean(布尔类型/是否类型)。

说明:如果 Variant的值 是零,则返回 False;否则返回 True。如果 Variant 不能解释为数值,则将发生运行时错误。

下面的示例利用 CBool 函数把 expression(表达式) 转换为 Boolean。如果 expression 不为零, CBool 返回 True;否则,返回 False。

Dim A, B, Check

A = 5: B = 5 ' 初始化变量

Check = CBool(A = B) ' check的值为 True A = 0 '定义变量

Check = CBool(A) '复选框设为 False

II. Cdate函数:CDate(date)

将Variant被转换为 Date 子类型的。date 参数是任意有效的日期表达式。

说明:

IsDate 函数用于判断 date 是否可以被转换为日期或时间。CDate 识别日期文字和时间文字,以及一些在可接受的日期范围内的数字。在将数字转换为日期时,数字的整数部分被转换为日期,分数部分被转换为从午夜开始计算的时间。

CDate 根据系统的区域设置识别日期格式。如果数据的格式不能被日期设置识别,则不能判断年、月、日的正确顺序。另外,如果长日期格式包含表示星期几的字符串,则不能被识别。

下面例子利用 CDate 函数把字符串转换为日期。 <%

MyDate = \定义日期

MyShortDate = CDate(MyDate) ' 转换为日期数据类型 MyTime = \定义时间

MyShortTime = CDate(MyTime) ' 转换为日期数据类型 %>

III. Cdbl函数: CDbl(expression)

Variant的值被转换为 Double 子类型。 说明:

通常,例如在出现货币或整数运算的情况下,使用 CDbl 或 CSng 函数强制进行双精度或单精度算术运算。

<%

Dim MyCurr, MyDouble

MyCurr = CCur(234.456784) ' MyCurr 是 Currency 型。

MyDouble = CDbl(MyCurr * 8.2 * 0.01) ' 把结果转换为 Double 型。 %>

IV. CInt函数: CInt(expression)

Variant被转换为 Integer 子类型。 expression 参数是任意有效的表达式。 说明:

通常,在出现货币、单精度或双精度运算的情况下,使用 CInt 或 CLng 强制执行整数运

算。如果 expression 在 Integer 子类型可接受的范围之外,则发生错误。

下面的示例利用 CInt 函数把值转换为 Integer: <%

Dim MyDouble, MyInt

MyDouble = 2345.5678 ' MyDouble 是 Double。 MyInt = CInt(MyDouble) ' MyInt 包含 2346。

%>

注意 CInt函数通常将其四舍五入为最接近的偶数。例如,0.5 被四舍五入为 0,而 1.5 被四舍五入为 2。

V. CLng函数: CLng(expression)

Variant被转换为 Long 子类型。expression 参数是任意有效的表达式。

说明:

通常,在出现货币运算、单精度或双精度算术运算的情况下,使用 CInt 或 CLng 函数强制进行整数运算。

如果 expression 取值不在 Long 子类型的允许范围内,则会出现错误。

下面的示例利用 CLng 函数把值转换为 Long: <%

Dim MyVal1, MyVal2, MyLong1, MyLong2 MyVal1 = 25427.45: MyVal2 = 25427.55 ' MyVal1, MyVal2 是双精度值。

MyLong1 = CLng(MyVal1) ' MyLong1 包含 25427。 MyLong2 = CLng(MyVal2) ' MyLong2 包含 25428。 %>

注意当小数部分恰好等于 0.5 时, CLng 函数通常向与此数最接近的偶数取整。例如,0.5 取整为 0、1.5 取整为 2。

VI. CSng函数: CSng(expression)

Variant被转换为 Single 子类型。expression 参数是任意有效的表达式。

说明:

通常,在出现货币或整数运算的情况下,使用 CDbl 或 CSng 强制执行双精度或单精度运算。

如果 expression 在 Single 子类型允许的范围之外,则发生错误。

下面的示例利用 CSng 函数把值转换为 Single: <%

Dim MyDouble1, MyDouble2, MySingle1, MySingle2 ' MyDouble1, MyDouble2 是双精度值。

MyDouble1 = 75.3421115: MyDouble2 = 75.3421555

MySingle1 = CSng(MyDouble1) ' MySingle1 包含 75.34211。 MySingle2 = CSng(MyDouble2) ' MySingle2 包含 75.34216。 %>

VII. Cstr函数: CStr(expression)

Variant被转换为 String 子类型。expression 参数是任意有效的表达式

说明:通常,可以使用子类型转换函数书写代码,以显示某些操作的结果应被表示为特定的数据类型,而不是默认类型。例如,使用 CStr 强制将结果表示为 String。

下面的示例利用 CStr 函数把数字转换为 String: <%

Dim MyDouble, MyString

MyDouble = 437.324 ' MyDouble 是双精度值。

MyString = CStr(MyDouble) ' MyString 包含 \。 %>

2.字符串函数

VBscript包括大量用于操作字符串的函数。当操作来自HTML表单或数据库的数据时,这些函数非常有用。这些函数可以拼接字符串,抽取字符串,搜索字符串,和比较字符串。

常用的有trim,mid,left,right等函数。 如: <%

StrTemp=Mid(This a good book”,8,4) ?取字符串的一部分,返good StrTemp=Trim(“ Black “) ?去掉两边空格,返回Black

StrTemp=Ucase(“welcome!”) ?将所有小写字母转换为大写字母,返回WELCOME

NumTemp=InStr(jian@163.com,”@”) ?返回第二个字符串在第一个字符串中的出现的位置,返回5

StrTemp=Replace(“abcdb”,”ab”,”*”) ?将abcdb中的ab都替换为*,返回*cdb

Split函数将一个字符串分解一维数组,常用于表单中的多行文本的段落的区分; 如: 〈%

dim MyStr

MyStr=split(“Welcome *to*my*web!”,”8”) ?以*为分界符拆分 Response.write MyStr(0)&”

” Response.write MyStr(1)&”

” Response.write MyStr(2)&”

日期和时间函数

now():取得系统当前的日期和时间 date():取得系统当前的日期 time():取得系统当前的时间 year():取得给定日期的年份 month():取得给定日期的月份 day():取得给定日期是几号

hour():取得给定时间是第几小时 minute():取得给定时间是第几分钟 second():取得给定时间是第几秒

WeekDay():取得给定时间是星期几的整数 Datediff():计算两个日期或时间的间隔 DateAdd():对两个日期或时间作加法 FormatDateTime():转化为各种日期格式

例: <%

response.write “你来访的日期”&Date() ?显示来访的日期 response.write “你来访的时间”&Time() ?显示来访的时间

response.write “你来访的时间”&Now() ?显示来访的日期和时间 NumTemp=Month(date()) ?返回当天是一年中的哪一月

NumTemp=Month(#2006-03-11#) ?返回给定日期是一年中的哪一月 NumTemp=Weekday(date()) ?返回当天是星期几 %

DateDiff计算两个给定日期或时间的时隔; <%

NumTemp=DateDiff(“d”,Date(0,#1/1/2007#) ?返回离2007元旦还有多少天 NumTemp=DateDiff(“h”,Date(0,#1/1/2007#) ?返回离2007元旦还有多少小时 NumTemp=DateDiff(“d”#12/1/2006,#1/1/2007#) ?返回两个日期之间的天数

数学函数

见书29页,

例如,保留小数后3位 <%

a=Int(10.23) ?取整,返回10

a=FprmatNumber(10.123456,3) ?保留小数点后3位,返回10.123 %>

产生随机数

随机数的产生 <%

dim NumTemp

Randomize Timer ?初始化随机种子 NumTemp=Int((10*Rnd())+1 Response.write NumTemp %>

检验函数

通常用来检验某变量 是否是某种类型,常用的函数如下:

Vartype():检查变量的值,返回0表示EMPTY,返回2表示整数,7表示日期,8表示字符串,11表示布尔变量,8192表示数组。 例子: <%

dim i,str,date1 i=3

str=\

date1=#2005-6-15#

response.write vartype(i) response.write \response.write vartype(str)

response.write \ '输出水平线 response.write vartype(date1) %>

输出结果为:2,8,7

Isnumeric():检查变量的值是否为数值,返回值为布尔 Isdate():检查变量的值是否为日期,返回值为布尔 Isnull():检查变量的值是否为null,返回值为布尔 Isempty():检查变量的值是否为empty,返回值为布尔 Isobject():检查变量的值是否为对象类型,返回值为布尔 Isarray():检查变量的值是否为数组,返回值为布尔 例: <% dim i i=\

if isnumeric(i) then '如果I的值为数值型的话,输出hello,否则输出world response.write \else

response.write \end if %>

输出结果是:world

3.9 VBScript过程与函数

过程

过程只执行程序不返回值,过程的定义: sub 过程名(参数1,参数2,----) 语句 end sub 或

sub 过程名() 语句 end sub

调用过程:

call 过程名(参数1,参数2,---) 或:过程名(参数1,参数2,---)

例:

输入任何一个数,计算从1到此数的平方和

<%

dim action

action=request(\if action=\

if request.Form(\call sum() else

response.write \请输入一个数\end if sub sum() dim num

num=request.Form(\'从表单中取出输入的数字 'response.write num 'response.end pingfang=0

for i=1 to num '利用循环语句,如果小于输入的数,则继续执行,否则退出循环 pingfang=pingfang+i*i next

response.write pingfang '输出最后结果 end sub end if %>

函数

执行程序并返回值:

function (参数1,参数2,---) 语句

end function 或:

function () 语句

end function

函数的调用:

变量名=函数名(参数1,参数2,---)

Sub子程序与Function函数两者的主要区别在于Sub只执行程序,不返回值,而Function将执行完的结果返回给请求的程序。

在实际的开发过程中,写过程是非常重要的,因为他可以节省很多的时间。假如我做个系统,把所有页面的错误提示信息做成一个独立的页面。写成过程,如果有程序响应错误,就调用过程,显示出来。是很方便的。 如上例或者写成:

<%

dim action

action=request(\if action=\

if request.Form(\

sum1=pingfang(request.Form(\response.write sum1 else

response.write \请输入一个数\

end if

function pingfang(a) dim sum1 sum1=0 for i=1 to a

sum1=sum1+i*i next

pingfang=sum1 end function end if

%>

3.10条件语句

使用条件语句和循环语句可以控制 Script 的流程。使用条件语句可以编写进行判断和重复操作的 VBScript 代码。在 VBScript 中可使用以下条件语句:

If...Then...Else 语句 Select Case 语句 条件为 True 时运行语句

在条件为 True 时运行单行语句,可使用 If...Then...Else 语句的单行语法。下例示范了单行语法。请注意此例省略了关键字 Else 。

Sub FixDate() Dim myDate

myDate = #2/13/95#

If myDate < Now Then myDate = Now End Sub

要运行多行代码,必须使用多行(或块)语法。多行(或块)语法包含 End If 语句,如下所示:

Sub AlertUser(value) If value = 0 Then

AlertLabel.ForeColor = vbRed AlertLabel.Font.Bold = True AlertLabel.Font.Italic = True End If End Sub

条件为 True 和 False 时分别运行某些语句

可以使用 If...Then...Else 语句定义两个可执行语句块:条件为 True 时运行某一语句块,条件为 False 时运行另一语句块。 Sub AlertUser(value) If value = 0 Then

AlertLabel.ForeColor = vbRed AlertLabel.Font.Bold = True AlertLabel.Font.Italic = True Else

AlertLabel.Forecolor = vbBlack AlertLabel.Font.Bold = False AlertLabel.Font.Italic = False End If End Sub

对多个条件进行判断

If...Then...Else 语句的一种变形允许您从多个条件中选择,即添加 ElseIf 子句以扩充 If...Then...Else 语句的功能,使您可以控制基于多种可能的程序流程。例如: Sub ReportValue(value) If value = 0 Then MsgBox value

ElseIf value = 1 Then MsgBox value

ElseIf value = 2 then Msgbox value Else

Msgbox \数值超出范围!\ End If

可以添加任意多个 ElseIf 子句以提供多种选择。使用多个 ElseIf 子句经常会变得很累赘。在多个条件中进行选择的更好方法是使用 Select Case 语句。

使用 Select Case 进行判断

Select Case 结构提供了 If...Then...ElseIf 结构的一个变通形式,可以从多个语句块中选择执行其中的一个。 Select Case 语句提供的功能与 If...Then...Else 语句类似,但是可以使代码更加简练易读。

Select Case 结构在其开始处使用一个只计算一次的简单测试表达式。表达式的结果将与结构中每个 Case 的值比较。如果匹配,则执行与该 Case 关联的语句块: Select Case Document.Form1.CardType.Options(SelectedIndex).Text Case \ DisplayMCLogo ValidateMCAccount Case \

DisplayVisaLogo ValidateVisaAccount Case \ DisplayAMEXCOLogo ValidateAMEXCOAccount Case Else

DisplayUnknownImage PromptAgain End Select

3.11循环语句

在 VBScript 中可使用下列循环语句:

for next 循环语句

For...Next 语句用于将语句块运行指定的次数。在循环中使用计数器变量,该变量的值随每一次循环增加或减少。

例如,下面的示例将过程 MyProc 重复执行 50 次。For 语句指定计数器变量 x 及其起始值与终止值。Next 语句使计数器变量每次加 1。

Sub DoMyProc50Times() Dim x

For x = 1 To 50 MyProc Next End Sub

关键字 Step 用于指定计数器变量每次增加或减少的值。在下面的示例中,计数器变量 j 每次加 2。循环结束后,total 的值为 2、4、6、8 和 10 的总和。 Sub TwosTotal() Dim j, total

For j = 2 To 10 Step 2 total = total + j Next

MsgBox \总和为 \。\End Sub

要使计数器变量递减,可将 Step 设为负值。此时计数器变量的终止值必须小于起始值。在下面的示例中,计数器变量 myNum 每次减 2。循环结束后,total 的值为 16、14、12、10、8、6、4 和 2 的总和。

Sub NewTotal() Dim myNum, total

For myNum = 16 To 2 Step -2 total = total + myNum Next

MsgBox \总和为 \。\End Sub

Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。因为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 If...Then...Else 语句的 True 语句块中使用 Exit For 语句。如果条件为 False,循环将照常运行。

do loop 循环语句

do while 条件1 语句 loop 或: do 语句

loop while 条件2

使用 Do 循环

可以使用 Do...Loop 语句多次(次数不定)运行语句块。当条件为 True 时或条件变为 True 之前,重复执行语句块。

当条件为 True 时重复执行语句

While 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(如下面的 ChkFirstWhile 示例);或者在循环至少运行完一次之后检查条件(如下面的 ChkLastWhile 示例)。在 ChkFirstWhile 过程中,如果 myNum 的初始值被设置为 9 而不是 20,则永远不会执行循环体中的语句。在 ChkLastWhile 过程中,循环体中的语句只会执行一次,因为条件在检查时已经为 False。

Sub ChkFirstWhile() Dim counter, myNum counter = 0 myNum = 20

Do While myNum > 10 myNum = myNum - 1 counter = counter + 1 Loop

MsgBox \循环重复了 \次。\End Sub

Sub ChkLastWhile() Dim counter, myNum counter = 0 myNum = 9 Do

myNum = myNum - 1 counter = counter + 1 Loop While myNum > 10

MsgBox \循环重复了 \次。\End Sub

重复执行语句直到条件变为 True

Until 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(如下面的 ChkFirstUntil 示例);或者在循环至少运行完一次之后检查条件(如下面的 ChkLastUntil 示例)。只要条件为 False,就会进行循环。

Sub ChkFirstUntil() Dim counter, myNum counter = 0 myNum = 20

Do Until myNum = 10 myNum = myNum - 1 counter = counter + 1 Loop

MsgBox \循环重复了 \次。\End Sub

Sub ChkLastUntil()

Dim counter, myNum counter = 0 myNum = 1 Do

myNum = myNum + 1 counter = counter + 1 Loop Until myNum = 10

MsgBox \循环重复了 \次。\End Sub

强行退出循环

exit for 退出for next

exit do 退出do loop

在下面的示例中,myNum 的初始值将导致死循环。If...Then...Else 语句检查此条件,防止出现死循环。

Sub ExitExample() Dim counter, myNum counter = 0 myNum = 9

Do Until myNum = 10 myNum = myNum - 1 counter = counter + 1

If myNum < 10 Then Exit Do Loop

MsgBox \循环重复了 \次。\End Sub

3.12注释语句

<%

rem 注释内容 %> 或: <%

?注释内容 %>

[注意]适当地加入注释语句,可以检查程序中的错误语句。

3.13 容错语句

on error resume next

当页面上出现错误时,程序跳过去执行下一句。不会将错误显示在访问者面前。

3.14程序举例

1.提交表单检查数据,如果为空给出提示,否则转入后台文件。 <%@LANGUAGE=\

无标题文档

2.显示数据库内容,对数据可进行删除,打印,修改等操作,在操作前给出提示信息。

<%@ language=VBScript%>