您的网站是否仍一如既往地保持“静态”?目前呈几何增长的互联网网站中,有相当一部分仍固守“静态”,无形中已大大落后于时代的步伐。所谓“静态”指的就是网站的网页内容“固定不变”,当用户浏览器通过互联网的HTTP(Hypertext Transport Pr otocol)协议向WEB服务器请求提供网页内容时,服务器仅仅是将原已设计好的静态HTML文档传送给用户浏览器。其页面的内容使用的仅仅是标准的HTML代码,最多再加上流行的GIF89A格式的动态图片,比如产生几只小狗小猫跑来跑去的动画效果。若网站维护者要更新网页的内容,就必须手动地来更新其所有的HTML文档。
2、IDC(Internet Database Connector)互联网数据库连接头是Windows NT Server内含Internet Information Server(简称IIS)2.0的特征之一,它提供了一种使你的互联网数据库内容得以发布并可与用户交互的方法,它实际上是一个包含于IIS中的I S A P I应用程序。你只需掌握HTML和SQL的基本知识并写为数不多的代码就能编出具有交互能力的数据库应用程序,让使用者在浏览器界面中得以查询、输入、更新、和删除WEB服务器上的数据资料。正如VB程序员所喜欢的那样,构成IDC应用程序的文件是解释性的,由于设计简易,只要准备两个档案,即可在用户端的浏览器中存取WEB服务器的数据资料,且无须编译,因此具有快速的开发循环和反馈。但这种简单性的代价是牺牲了许多灵活性,使你不得不放弃许多对用户接口的控制,并几乎放弃了所有验证数据的能力。因而I D C仅适用于简单的WEB应用程序。
3、ActiveX Data Object(ADO)是WEB数据库应用的最佳选择。
ActiveX Data Object(简称ADO)究竟是什么呢?ActiveX Data Object的技术,让您可以与Active Server Pages(简称ASP)结合以建立提供数据资讯的网页内容,只需在网页面中执行Structured Query Language(结构化查询语言,简称SQL)指令,让用户在浏览器界面中输入、更新、和删除WEB服务器上的数据资料。当用户端的浏览器填好表单所要求输入的资料并按下“Submit”按钮后,经过互联网、内联网传送HTTP请求到WEB服务器,该请求在WEB服务器执行一个表单所指定的Active Server Pages程序(后缀名为. ASP的文档)。一个. ASP文档是一个纯文字档,包括:HTML标记(tags)、VBScript或JScript语言的程序代码、ASP语法、和结构化查询语言SQL指令。IIS3.0 / 4.0 WEB服务器执行. ASP文档,通过ODBC驱动程式,连接到支持ODBC的数据库上,执行ASP文档所指定的SQL指令,最后将执行的结果以HTML的格式传送给用户浏览器。ADO具有容易使用、开发执行快速、消耗系统资源较少,和占用磁盘空间小等优点。
以上就是目前设计商业网站常用的“动态”技术,由于本人的工作和使用经验,笔者较倾向于ADO和ASP的结合,从长远来看这对搭档也势必成为今后一段时间内“动态”WEB的核心技术。因此在本文第二章《动态网页设计十八般武艺》中,笔者将就ADO和ASP的使用进行展开讲述,敬请期待。作者: ★功夫小子★ 时间: 2010-1-13 05:04
看了《如何令你的网站“动感十足”》一文后,是否令你怦然心动?是否已经急不可待地想构建属于你自己的动态网站?本文将以 Active Server Pages 为中心,向你全面展示制作动态商业网站的步骤和技巧并通过大量的实例,让你在不断的理论和实践之中笑傲“网络”……
上一章给大家简要介绍了建立动态网站的一些方法和制作工具,本章将以如何建立基于 IIS 的 ASP 动态网站为中心向大家一步一步地揭示动态商业网站设计的真正奥秘。为了使各位能够全面、细致地掌握 ASP 的开发技巧,本文今后将采取连载的形式,手把手地教你如何建立属于自己 ASP 动态网站。由于本文是作者根据自己的学习和实践经验并结合了一些外文资料而写成的,因此不免会有一些偏颇,希望各位见谅。如发现本文有何不当之处,请及时通知作者,谢谢。
Microsoft Active Server Pages 即我们所称的 ASP ,其实是一套微软开发的服务器端脚本环境, ASP 内含于 IIS 3.0 和 4.0 之中 , 通过 ASP 我们可以结合 HTML 网页、 ASP 指令和 ActiveX 元件建立动态、交互且高效的 WEB 服务器应用程序。有了 ASP 你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML 中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。 以下罗列了 Active Server Pages 所独具的一些特点:
1. 使用 VBScript 、 JScript 等简单易懂的脚本语言,结合 HTML 代码,即可快速地完成网站的应用程序。
2. 无须 compile 编译,容易编写,可在服务器端直接执行。
3. 使用普通的文本编辑器,如 Windows 的记事本,即可进行编辑设计。
4. 与浏览器无关 (Browser Independence), 用户端只要使用可执行 HTML 码的浏览器,即可浏览 Active Server Pages 所设计的网页内容。 Active Server Pages 所使用的脚本语言 (VBScript 、 Jscript) 均在 WEB 服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。
5.Active Server Pages 能与任何 ActiveX scripting 语言相容。除了可使用 VBScript 或 JScript 语言来设计外,还通过 plug-in 的方式,使用由第三方所提供的其他脚本语言,譬如 REXX 、 Perl 、 Tcl 等。脚本引擎是处理脚本程序的 COM(Component Object Model) 物件。
6.Active Server Pages 的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。
7. 可使用服务器端的脚本来产生客户端的脚本。
8. 物件导向( Object-oriented )。
9.ActiveX Server Components(ActiveX 服务器元件 ) 具有无限可扩充性。可以使用 Visual Basic 、 Java 、 Visual C++ 、 COBOL 等编程语言来编写你所需要的 ActiveX Server Component 。
ASP 的奇妙之处真是不胜枚举,下面就请各位系好安全带,我将带领大家进入 ASP 的梦幻世界。
首先,让我们来看看运行 ASP 所需的环境:
·Microsoft Internet Information Server version 3.0/4.0 on Windows NT Server
·Microsoft Peer Web Services Version 3.0 on Windows NT Workstation
·Microsoft Personal Web Server on Windows 95/98
正如前文所述,与一般的程序不同, .asp 程序无须编译, ASP 程序的控制部份,是使用 VBScript 、 JScript 等脚本语言来设计的,当执行 ASP 程序时,脚本程序将一整套命令发送给脚本解释器 ( 即脚本引擎 ) ,由脚本解释器进行翻译并将其转换成服务器所能执行的命令。当然,同其他编程语言一样, ASP 程序的编写也遵循一定的规则,如果你想使用你所喜爱的脚本语言编写 ASP 程序,那么你的服务器上必须要有能解释这种脚本语言的脚本解释器。当你安装 ASP 时,系统提供了两种脚本语言: VBsrcipt 和 JScript ,而 VBscript 则被作为系统默认的脚本语言。你也可以根据自己的喜好改变系统默认的脚本语言,关于如何改变系统默认的脚本语言请看《 在 ASP 中使用脚本语言》一文。
ASP 本身并不是一种脚本语言,它只是提供了一种使镶嵌在 HTML 页面中的脚本程序得以运行的环境。但是,要学好 ASP 又必须掌握它的语法和规则。现在就让我们开始一步一步地认识并学习 Active Server Pages 。
ASP 程序其实是以扩展名为 .asp 的纯文本形式存在于 WEB 服务器上的,你可以用任何文本编辑器打开它, ASP 程序中可以包含纯文本、 HTML 标记以及脚本命令。你只需将 .asp 程序放在 WEB 服务器的虚拟目录下(该目录必须要有可执行权限),就可以通过 WWW 的方式访问 ASP 程序了。要学好 ASP 程序的设计,必须掌握脚本的编写,那么究竟什么是脚本呢?其实脚本是由一系列的脚本命令所组成的,如同一般的程序,脚本可以将一个值赋给一个变量,可以命令 WEB 服务器发送一个值到客户浏览器,还可以将一系列命令定义成一个过程。要编写脚本,你必须要熟悉至少一门脚本语言,如 VBScript 。脚本语言是一种介乎于 HTML 和诸如 JAVA 、 Visual Basic 、 C++ 等编程语言之间的一种特殊的语言,尽管它更接近后者,但它却不具有编程语言复杂、严谨的语法和规则。如前所述 ASP 所提供的脚本运行环境可支持多种脚本语言,譬如: JScript 、 REXX 、 PERL 等等,这无疑给 ASP 程序设计者提供了广泛的发挥余地。 ASP 的出现使得广大 WEB 设计者不必在为客户浏览器是否支持而担心,实际上就算你 在同一个 .asp 文件中使用不同的脚本语言,你都无须为此担忧,因为所有的一切都将在服务器端进行,客户浏览器得到的只是一个程序执行的结果,而你也只需在 .asp 中声明使用不同的脚本语言即可。下面是一个典型的在同一 .asp 文件中使用两种脚本语言的例子:
< HTML>
< BODY>
< TABLE>
< % Call Callme %>
< /TABLE>
< % Call ViewDate %>
< /BODY>
< /HTML>
< SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Callme
Response.Write "< TR>< TD>Call< /TD>< TD>Me< /TD>< /TR>"
End Sub
< /SCRIPT>
< SCRIPT LANGUAGE=JScript RUNAT=Server>
function ViewDate()
{
var x
x = new Date()
Response.Write(x.toString())
}
< /SCRIPT>
这是各位在本文中接触的第一个真正的 ASP 程序,千万不要被“ < % %> ”符号搞糊涂,这其实是标准的 ASP 定界符,而“ < SCRIPT>< /SCRIPT> ”之间的就是脚本语言。 ASP 不同于脚本语言,它有自己特定的语法,所有的 ASP 命令都必须包含在 < % 和 %> 之内,如: < % test="English" %> , ASP 通过包含在 < % 和 %> 中的表达式将执行结果输出到客户浏览器 , 如: < % =test %> 就是将前面赋给变量 test 的值 English 发送到客户浏览器中,而当变量 test 的值为 Mathematics 时 , 以下程序:
This weekend we will test < % =test %>.
在客户浏览器中则显示为:
This weekend we will test Mathematics.
学习 ASP 最好的方法莫过于亲自动手编写,为了在最短的时间内使各位掌握 ASP 的程序设计技巧,本文将采取实例分析法,通过一系列的实例让各位在实践中学习 ASP 。建立一个 ASP 页面,你所需的只是打开一个文本编辑器,如: Notepad ,然后跟我开始动手编写第一个 ASP 程序。下面我们将建立一个自动监测浏览时间并根据不同时段动态显示不同页面内容的 ASP 程序,请将以下代码剪贴到你的文本编辑器中 , 并存为 test1.asp :
< html>
< body>
< FONT COLOR="Green">
< % If Time < #12:00:00# And Time >= #00:00:00# Then %>
早上好,今天天气不赖啊 !
< % ElseIf Time < #19:00:00# And Time >= #12:00:00# Then %>
下午好 !
< % Else %>
哈喽 ! 今晚你有没有去 IRC 聊天 !
< % End If %>
< /body>
< /html>作者: 爱人好难a 时间: 2010-1-13 05:04
将 test1.asp 保存在 WEB 服务器的虚拟目录 ( 如: aspsamp/) 下,并在浏览器中用 HTTP 的方式进行浏览,如: http://yourcomputername/aspsamp/test1.asp ,你将会新奇地发现,你的页面真的活起来了。虽然,这只是一个非常简单的实例,而且这一功能完全可以通过 JavaScript 完成,但是不难发现使用 ASP 要比 JavaScript 简洁、迅速得多,而且运用此法,你完全可以轻而易举地令你的网页在不同的时段展示不同的风格。此例中的“ Time ”实际上是一个 VBScript 内置的显示系统当前时间的函数,由于系统默认的脚本语言是 VBScript ,因此当你在 ASP 命令中调用该函数时,脚本引擎会自动将其转换成当前的系统时间。接下来我们将给 test1.asp 添加一点色彩,在 < body> 标识中添加“ bgcolor="< % =bgc %> ”即变为 < body bgcolor="< % =bgc %>"> ,并在 < body> 标记前添加如下语句:
< % If Time < #12:00:00# And Time >= #00:00:00# Then
bgc="silver"
ElseIf Time < #19:00:00# And Time >= #12:00:00# Then
bgc="navy"
Else
bgc="red"
End If
%>
如此一来,当用户在不同的时段访问你的页面时,他们将会看到不同的页面背景色。我们可以做的事情还有很多,譬如你想知道在凌晨至十二点之间浏览你页面的客户的姓名,并向他或她问好,那么下面的这段程序将能助你达成心愿。首先你需要在页面中设置表单,将以下 HTML 代码剪贴到“ < % If Time < #12:00:00# And Time >= #00:00:00# Then %> ”之后:
欢迎光临我的主页,请填写以下信息 : < FORM METHOD="POST" ACTION="test1.asp">
< P>
First Name: < INPUT NAME="fname" SIZE="48">
< P>
Last Name: < INPUT NAME="lname" SIZE="48">
< P>
Title: < INPUT NAME="title" TYPE=RADIO VALUE="mr">Mr.
< INPUT NAME="title" TYPE=RADIO VALUE="ms">Ms.
< P>< INPUT TYPE=SUBMIT>< INPUT TYPE=RESET>
< /FORM>
然后在以上 HTML 代码后面添加如下 ASP 命令: < %
title=request.form("title")
if title="mr" then
%>
欢迎您 Mr.< % =request.form("fname") %> 。
< % elseif title="ms" then %>
欢迎您 Ms.< % =request.form("fname") %> 。
< % else %>
< B>< font color=blue> 欢迎您 < % =request.form("fname")&" "&request.form("lname") %> 。 < /font>< /B>
< % end if %>
这其实是一个在 Internet 和 Intranet 上常见的功能,即当用户在浏览器端填写完表单后,通过调用一个通用网关程序将用户数据传送到服务器,由服务器进行处理后再将结果返还给客户浏览器。过去为了实现这样的功能必须编写一个独立于 HTML 之外的 CGI 程序,并通过 HTML 进行调用,撇开 CGI 编写复杂等缺点不谈, CGI 的执行效率也是一个大问题,每一个表单 (form) 均须执行一个可执行文档,当多人同时上线使用时,多个文档同时执行,将大大降低 WEB 服务器的执行速度,如今 ASP 提供了与 HTML 完全相融的编程环境,显然要比使用 CGI 便捷得多。
在本期的最后让我们再来看看 ASP 的循环功能,譬如你希望当客户在晚间 7:00 至凌晨 0:00:00 浏览你的页面时,在页面中央显示 6 个笑脸 表示问候,那么你只需要将以下命令剪贴到“ Good Evening! ”后面即可: < % for i=1 to 6 %>
< p>< center>< img src="smile.gif" width="32" height="32" alt=" 晚上好 ">< /p>
< % next %>
这是一个最最基本的循环语句,它将一个笑脸图片重复调用六次并显示在页面上。当然此例的效果完全可以用 HTML 做到,但是不难发现使用 ASP 大大缩短了代码的重复编写,使得程序具有良好的可阅读性。另外,当你制作一个诸如根据用户投票来给所评测的对象评定星级的评测站点时,使用此法,你就完全不需要为每一个星级制作一幅图片。如果一个对象被评为 4 星级,那只需将一颗星的图片循环显示 4 次,以此类推即可。当然,当工作量较小的时候你不会感觉到 ASP 的好处,然而一旦数据量巨增,你将会深刻的体会到 ASP 动态网站给你带来的前所未有的轻、爽感受 !作者: 冷冷DI草 时间: 2010-1-13 05:04
本文 ASP 篇 (1) 展示了 ASP 动态网站设计的一些最基本的方法,相信通过实践各位对 ASP 已经有了最基本的了解,本篇在答复大家所提问题的同时,将进一步介绍 ASP 动态网站的一些基本技巧。
自本文第一篇刊登后 , 络绎不绝地收到了一些朋友的来信,出乎作者的意料,其中有相当一部分是初次接触 ASP ,因此有许多朋友都提出为何在浏览器中浏览 ASP 篇 (1) 中的范例时看到的竟然是原代码?由于遇到此问题的朋友较多,故作者在此一并回答。首先,我要再次强调 ASP 是一套服务器端的脚本环境,当用户从浏览器向 Web 服务器请求 .asp 文件时, ASP 脚本开始运行,然后 Web 服务器调用 ASP , ASP 全面读取请求的文件,执行所有脚本命令,并将 Web 页传送给浏览器,这就意味着你不能简单地在现有的操作系统 ( 如 Win95 、 98) 下,用浏览器中的 " 打开 " 命令来浏览 .asp 文件;其次,运行 .asp 文件需要服务器端的支持,目前除了 WindowsNT 下的 Microsoft Internet Information Server 支持 Active Server 技术外, Active Server 还可用于 MS Windows NT Workstation 和 MS Windows 95/98 中的 Personal Web Server 的构件,因此无论你安装的是 NT 还是 WIN95/98 ,都必须在原系统上安装支持 ASP 的服务器端环境,才能使你的机器得以运行 .asp 文件。由于目前绝大多数朋友安装的是 Win95 或是 98 ,因此作者就在这里着重介绍如何在 Win95/98 下运行和浏览 .asp 文件。因为 MSPersonal Web Server 支持通用网关接口 (CGI) 应用程序、 Internet 数据库接口 (IDC) 应用程序和 IIS 应用程序接口 (ISAPI) 应用程序,并且支持运行和开发 ASP 应用程序,所以使得 Win95 及其以后操作平台具备了近似于 NT 的健全的网站运作和管理功能。你所要做的只是在现有的 Win95/98 系统上安装 MS Personal Web Server ,建议安装最新的 4.0 版本。当安装完成后, PWS4.0 会在系统启动时自动加载。打开 PWS ,选择左栏中的 " 高级 " 按钮 ( 见下图 Asp2a.gif) ,点取 " 虚拟目录 " 下的 "/_private" 目录,然后点击右边的 " 编辑属性 " 按钮,如图所示,在对话框中你可以编辑该虚拟目录的物理路径和目录名,上图中 "/_private" 的物理路径为 "D:\Inetpub\wwwroot" ,该目录是系统默认的 WWW 发布根目录,将上一篇中的范例 test1.asp 文件复制到 "D:\Inetpub\wwwroot" 目录下。最后,你只要将该虚拟目录的访问权限选择为 " 执行 " ,并在浏览器的 " 地址 " 栏中输入 "http://localhost/test1.asp" 就可以运行并浏览该 ASP 程序了。
知道了如何运行并浏览 ASP 程序,下面我们就继续 ASP 动态网站设计的学习。
通过这两篇对 ASP 的介绍,大家已经看到编写 ASP 程序是相当轻松的,要掌握 ASP ,无非就是掌握 ASP 内置的五个对象,以及 ASP 提供的 ActiveX 组件的对象、方法和属性,当然扎实的脚本语言编写能力也是必须的。在今后的课程中作者将用五到六篇的篇幅着重介绍这些内置对象和组件的作用及使用方法,敬请关注。作者: ぱホ 时间: 2010-1-13 05:04
通过前两篇的学习,相信各位已经对 ASP 的动态网站设计有了一个基本的概念和整体的印象。从本篇开始作者将从脚本语言的使用着手,由浅入深地带领大家探索 ASP 动态网站设计的真正奥秘。
本文第二篇刊登后,很多朋友给我发了“妹儿”,希望能尽快看到本文的第三、第四、乃至第……篇,甚至有位朋友焦急地要我将 ASP 篇的全文发给他。看到有如此之多志同道合的朋友,令我精神大振。虽然 ASP 早在两年前就已经推出了,但直到今年它才以其灵活便捷的开发过程、良好的 WEB 数据库连接功能受到了国人的重视,然而由于目前国内尚缺乏关于 ASP 开发 WEB 应用程序的详尽教材,因此使得国内广大 WEB 开发者们仍处在闭门啃 E 文的阶段,也包括作者本人。也正因为如此,作者才蒙发了写文章的念头,在得到 Chinabyte 网络学院翁斌先生的大力支持后,各位才得以见到此文。
作者殷切希望能通过此文为广大 WEB 开发者和爱好者提供便利,使大家共同来参加 ASP 的学习和交流,为了顾全不同层次读者的需求作者还是决定从最基本的脚本语言的编制着手,随后再一步一步地讲解 ASP 内建对象、ActiveX 组件以及用 ASP 开发 WEB 应用程序的实例,相信通过一段时间持续的学习,不出几个月各位都能够得心应手地开发自己的动态网站。下面就先请大家跟我来学习一些 ASP 中应用脚本语言(以 VBScript 为主)的基础知识。
然而,即使在使用变量前不需要去声明变量,也应养成在编程时声明变量的良好习惯,因为这样有助于防止错误发生。声明一个变量意味着告诉脚本引擎,有一个特定名称的变量,这样就可以在脚本中引用该变量。在 VBScript 中声明一个变量可以使用“Dim”语句,如下:
< script language="VBScript" >
< !--
Option Explicit ' 要求在脚本中声明所有的变量
Dim Mystring
Mystring="This is my string"
-- >
< /script>
变量的作用域即生命期,决定哪些脚本命令可访问变量。在过程内部声明的变量具有局部作用域。每执行一次过程,变量就被创建然后消亡。而过程外部的任何命令都不能访问它。在过程外部声明的变量具有全局作用域,其值能被 ASP 页上的任何脚本命令访问和修改。声明变量时,局部变量和全局变量可以有相同的名称。而改变其中一个的值并不会改变另一个的值。如果没有声明变量,则可能不小心会改变一个全局变量的值。例如,以下脚本命令返回值 1,虽然有两个名为 Y 变量:
< %
Dim YY = 1Call SetLocalVariableResponse.Write Y
Sub SetLocalVariable
Dim Y
Y = 2End Sub % >
由于变量没有显式声明,以下的脚本命令将返回 2。当过程调用将 Y 设置为 2 时,脚本引擎认为该过程是要修改全局变量:
<%
Y = 1Call SetLocalVariableResponse.Write Y
Sub SetLocalVariable
Y = 2
End Sub% >
然而,全局变量仅在单个 ASP 页中可用,要使它在单个 ASP 页之外可用,就必须为变量赋予会话或应用程序作用域。会话作用域变量对一个用户所请求的 ASP 应用程序中的所有页都是可用的。应用程序作用域变量也如此。对单个用户来说,会话变量是存储信息的最佳途径,例如,用户首选项、用户名或用户的标识。对于一个特殊应用程序的所有用户,应用程序作用域是存储信息的最佳途径,例如,应用程序特定的问候语或应用程序所需的初始值。ASP 提供两个内建对象来让您存储变量:Session 对象和 Application 对象,这将在今后的 ASP 内建对象中着重讨论。
这里的 RUNAT=SERVER 属性通知 Web 服务器在服务器上处理脚本。若不设置该属性,脚本将由客户端浏览器处理。LANGUAGE 属性决定此脚本块所用的脚本语言。您可以指定任何一种具有脚本引擎的语言。请使用 VBSCRIPT 指定 VBScript;用 JSCRIPT 指定 JScript。若不设置 LANGUAGE 属性,将用主脚本语言解释此脚本块。
在 VBScript 中,过程被分为两类:Sub 过程和 Function 过程。Sub 过程是包含在 Sub 和 End Sub 语句之间的一组 VBScript 语句,执行操作但不返回值。Sub 过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果 Sub 过程无任何参数,则 Sub 语句必须包含空括号 ()。
Function 过程是包含在 Function 和 End Function 语句之间的一组 VBScript 语句。Function 过程与 Sub 过程类似,但是 Function 过程可以返回值。Function 过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果 Function 过程无任何参数,则 Function 语句必须包含空括号 ()。Function 过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。Function 返回值的数据类型总是 Variant。在下面的示例中 Sub 过程使用两个固有的(或内置的)VBScript 函数,即 MsgBox 和 InputBox,来提示用户输入信息。然后显示根据这些信息计算的结果。计算由使用 VBScript 创建的 Function 过程完成,Celsius 函数将华氏度换算为摄氏度。Sub 过程 ConvertTemp 调用此函数时,包含参数值的变量被传递给函数。换算结果返回到调用过程并显示在消息框中。
Sub ConvertTemp()
temp = InputBox(" 请输入华氏温度。", 1)
MsgBox " 温度为 " & Celsius(temp) & " 摄氏度。"
End Sub
Function Celsius(fDegrees)
Celsius = (fDegrees - 32) * 5 / 9
End Function
给过程传递数据的途径是使用参数。参数被作为要传递给过程的数据的占位符。参数名可以是任何有效的变量名。使用 Sub 语句或 Function 语句创建过程时,过程名之后必须紧跟括号。括号中包含所有参数,参数间用逗号分隔。例如,在下面的示例中,fDegrees 是传递给 Celsius 函数的值的占位符:
Function Celsius(fDegrees)
Celsius = (fDegrees - 32) * 5 / 9
End Function
要从过程获取数据,必须使用 Function 过程。请记住,Function 过程可以返回值;Sub 过程不返回值。
以上给大家简要介绍了 VBScript,由于篇幅的原因,作者不可能在此详尽介绍 VBScript 的所有知识。但是由于 ASP 本身并不是一种编程语言,因此在大家编写 ASP 应用程序的过程中,必须借助脚本语言来实现许多特殊的功能,所以灵活熟练地掌握脚本语言对一个使用 ASP 编写 WEB 应用程序的程序员来说是至关重要的。无论您是一个有丰富编程经验的高手还是一个初学者,只要您现在希望通过 ASP 编写 WEB 应用程序,作者极力建议您掌握至少一门脚本语言(如 VBScript)。在本篇的末尾作者将留一道课后作业给大家,希望各位能通过自学有关书籍并在实践中迅速掌握脚本语言。
课后作业:
作者正在用 ASP 制作一套基于 WEB 的 BBS 系统,作者希望能在其中添加一项特殊功能,即当任何用户登陆该 BBS 后都能够查阅近七天来所有新发布的信息。由于 ASP 本身的内建对象和组件并没有提供此项功能,因此作者请大家从 VBScript 着手,来设计这样一个功能。如有任何疑问请 EMAIL 作者,答案将在下一篇公布。敬请关注。作者: 发指的青春 时间: 2010-1-13 05:05
在本文上两篇中,我们学习了脚本语言 VBScript 的变量、函数、过程和条件语句,本篇将继续给大家介绍 VBScipt 的循环语句,并对脚本语言在 ASP 中的应用加以总结。 如果有人告诉你学习 ASP 不需要任何编程知识,那么他错了;如果我告诉你学习 ASP 必须掌握一门编程语言,那么我错了。ASP 动态服务器页面环境的特点就在于它是通过一种或几种脚本语言而写成的,脚本语言可以看作是编程语言的简化版,它易于学习和掌握,这给广大动态网站的设计者们提供了相当大的便利。可以这么说 : 脚本语言运用的得当与否直接关系到 ASP 应用程序的优与劣。继上一篇我们学习了脚本语言 VBScript 的函数和条件语句后,今天我们继续来看看 VBScript 中的循环语句。
循环语句的作用就是重复执行程序代码,循环可分为三类:一类在条件变为“假”之前重复执行语句,一类在条件变为“真”之前重复执行语句,另一类按照指定的次数重复执行语句。在 VBScript 中可使用下列循环语句:
Do...Loop: 当(或直到)条件为“真”时循环。
While...Wend: 当条件为“真”时循环。
For...Next: 指定循环次数,使用计数器重复运行语句。
For Each...Next: 对于集合中的每项或数组中的每个元素,重复执行一组语句。 我们先来看看 Do...Loop,它是可以多次(次数不定)运行语句块。当条件为“真”时或条件变为“真”之前,重复执行语句块。请看下例: < html>< head>
< title>DoLoop.asp< /title>< body bgcolor="#FFFFFF">< /head>< p>< /p>
< p> 请将今年到本月为止的每个月份的销售结算记录填写在本页之上。< P>
< %
counter = 1
thismonth = month(now())
Do while counter < thismonth + 1
response.write " " & counter & " 月份 : "
response.write "______________________________" & "< BR>< br>"
If counter >13 then
exit do
end if
counter = counter+1
Loop
%>
< hr>< /body>< /html>
这段 ASP 程序运用循环语句制作了一张销售结算记录表,将以上代码剪贴至记事簿保存为 DoLoop.asp,并在浏览器中以 HTTP 方式进行浏览,根据当前的月份的不同,你将看到如下图的结果。
While...Wend 语句是为那些熟悉其用法的用户提供的。但是由于 While...Wend 缺少灵活性,所以建议最好使用 Do...Loop 语句。下面我们来看看 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 " 总和为 " & total & "。"
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 " 总和为 " & total & "。"
End Sub
Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。因为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 If...Then...Else 语句的 True 语句块中使用 Exit For 语句。如果条件为 False,循环将照常运行。
最后,让我们来看看 For Each...Next 语句 ,For Each...Next 循环与 For...Next 循环类似。For Each...Next 不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句。这在不知道集合中元素的数目时非常有用。它的语法如下: For Each element In group
[statements]
[Exit For]
[statements]Next [element]
如果 group 中有至少一个元素,就会进入 For Each 块执行。一旦进入循环,便首先对 group 中第一个元素执行循环中的所有语句。只要 group 中还有其他的元素,就会对每个元素执行循环中的语句。当 group 中没有其他元素时退出循环,然后从 Next 语句之后的语句继续执行。
至此,我们已经完成了对脚本语言 VBScript 所有的基本知识的学习,但是仅凭阅读现有的这几篇文章你是无法熟练运用 VBScript 的,你必须通过不断的实践来提高自己的等级。当然,如果你熟悉 C,你也可以选择JavaScript 来作为 ASP 应用程序的脚本语言。不知大家有没有发现 ASP 程序的调试比较困难,因为没有什么现成的工具,在这里我向大家简要介绍一下 Microsoft Script Debugger,我们可以运用它来进行一定量的程序调试工作。
IIS4.0 所包括的 Microsoft Script Debugger(Script 侦错工具),提供脚本程序的侦错功能。您可以使用 Microsoft Script 侦错工具来进行对使用 VBScript、JScript 编写的脚本程序,以及 Java applets、beans 和 ActiveX 组件的侦错工作。
有的脚本程序在用户端浏览器执行,有的脚本程序(< % … %> 中的部份)在服务器端执行。Microsoft Script Debugger,可以侦错用户端执行的脚本程序以及服务器端执行脚本程序。 在用户端浏览器执行的脚本程序是在用户端的浏览器当中执行,包括在标准 HTML 代码中的 VBScript、Jscript 部份。在浏览器载入此 HTML 代码或譬如按下按钮触发事件时,将执行此包括脚本程序的 HTML 代码。用户端浏览器执行的脚本程序,主要用于对 HTML 表单输入的基本检查等功能。
在服务器端执行的脚本程序是在 IIS 服务器端执行,包括在 .asp 程序中。先在 IIS 服务器上执行,执行结果产生标准的 HTML 代码,再传送到用户端浏览器。服务器端执行的脚本程序,主要用于多个网页之间的连结,HTML 表单输入的处理,以及存取服务器上数据库的资料等。