1、第六章 ASP动态网页设计第一节 ASP概述一、ASP的特点ASP具有以下特点:(1)使用VBScript、JavaScript等简单易懂的脚本语言,同时结合HTML代码,可快速完成网站应用程序的开发。(2)使用普通的文本编辑器(如Windows的记事本)即可进行编辑设计,而利用Frontpage或者Dreamweaver等所见即所得型的网页编辑软件可以快捷方便地进行编辑,易学易用。第一节 ASP概述一、ASP的特点(3)与浏览器无关,客户端只需有可执行HTML代码的浏览器,即可浏览使用ASP制作的网页。ASP所使用的脚本语言(VBScript、JavaScript)均在Web服务器端执行,不
2、需要用户端的浏览器能够执行这些脚本语言。(4)ASP提供了一些内置对象,可用来从客户端浏览器接收信息或将服务器处理后的响应信息发送给客户端浏览器。第一节 ASP概述一、ASP的特点(5)ASP提供了一些标准的ActiveX组件,同时允许用户添加或创建属于自己的ActiveX 组件。这些组件允许依据客户端浏览器的能力进行不同的显示以及在浏览器内包含计数器等。(6)ASP提供了与后台数据库连接和访问的功能,并且可以使动态网页的内容随着相关数据库内容的更新而自动更新。第一节 ASP概述一、ASP的特点(7)ASP的源程序不会被传送到客户端浏览器,因而可以避免所写的源程序被他人剽窃,同时也提高了程序的
3、安全性。(8)ASP可使用服务器端的脚本程序来产生客户端的脚本。第一节 ASP概述二、ASP文件的工作过程HTML文件不需要特殊的运行环境,可以直接用浏览器打开浏览。ASP文件不能使用浏览器直接打开,要浏览ASP页面需要一定的运行环境支持。其原因在于:静态页面运行在客户端,动态页面运行在服务器端,ASP文件需要经过Web服务器处理成普通的HTML文件后才发送到客户端。ASP文件的运行过程为:(1)通过客户端浏览器发送HTTP请求。第一节 ASP概述二、ASP文件的工作过程(2)服务器根据请求对页面进行检索。(3)当用户使用浏览器请求ASP页面时,Web服务器响应客户端请求,调用ASP引擎(通常
4、是IIS)来执行ASP文件,并解释其中的脚本语言(JavaScript或VBScript);若需要访问数据库,则通过ODBC连接数据库,由数据库访问组件ADO完成数据库操作,最后将ASP文件生成为包含数据查询结果的HTML页面。第一节 ASP概述二、ASP文件的工作过程(4)将生成的HTML页面返回给客户端。(5)客户端浏览器显示返回的HTML页面。ASP文件的工作过程如图6-1所示。第一节 ASP概述二、ASP文件的工作过程第一节 ASP概述三、ASP组成要素(一)HTML代码一个ASP文档通常会或多或少地包含几行或几组HTML标签,以控制网页内容的输出效果。HTML代码建立的是网页中的“静
5、态”内容。第一节 ASP概述三、ASP组成要素(二)ASP内置对象ASP的核心便是其提供的一些内置对象。在Web应用程序中,内置对象可用来取得客户端的信息,或将服务器端的响应信息传送回客户端,并可以存储公共数据,维护工作状态,访问服务器的公用程序,转移数据等。Web应用程序的开发者可以在ASP的脚本命令中直接使用这些对象。第一节 ASP概述三、ASP组成要素(三)ActiveX组件为了扩充ASP的功能,更好并更容易地设计Web应用程序,ASP还提供了一些具有特定功能的ActiveX组件,并允许用户使用Visual Basic、C+、Java和Delphi等语言设计专属于自己的ActiveX组件
6、。使用组件可以完成服务器端文件的存取与管理、数据库服务器的访问、浏览器的兼容、Web页面的广告轮换等诸多功能。第一节 ASP概述三、ASP组成要素(四)脚本语言在一个实际的ASP文件中,以上所述的HTML代码、ASP内置对象和ActiveX组件都是通过特定的脚本语言有机地结合在一起的。ASP允许使用VBScript或JavaScript作为其脚本语言。除此之外,只要是能够提供ActiveX脚本引擎接口供ASP程序调用的任何程序语言都可以作为ASP的脚本代码设计语言。换言之,ASP是一种与程序设计语言无关的Web应用开发与执行环境。第一节 ASP概述四、ASP文件的创建与运行ASP文件实际上是一
7、个扩展名为.asp的文本文件,因而可用任何一种文本编辑器来创建和修改。此外,ASP文件必须通过Web服务器来运行,并将结果传送回客户端浏览器。我们利用Windows的记事本输入如下的一段代码。【例6-1】第一个ASP程序。第一节 ASP概述四、ASP文件的创建与运行我的第一个ASP网页中的内容表示服务器端脚本语言,默认为VBScript。dim为变量声明关键字。time为时间函数,调用此函数可获得系统时间。第一节 ASP概述四、ASP文件的创建与运行Response为ASP内置对象,Write为Response对象的方法,其功能为向客户端输出信息。“”表示注释,“”后的内容不会被输出。在安装了
8、IIS的前提下,将此文件命名为61.asp,并将其保存到C:Inetpubwwwrootch6文件夹下,打开IE浏览器,在地址栏中输入http:/127.0.0.1/ch6/61.asp或http:/localhost/ch6/61.asp即可得到图62所示的效果。右击6-1.asp运行结果页面,在弹出的快捷菜单中选择“查看源文件”命令,如图6-3所示,会看到如下代码:第一节 ASP概述四、ASP文件的创建与运行我的第一个ASP网页现在是:北京时间第一节 ASP概述四、ASP文件的创建与运行2:13:57与【例6-1】中的ASP源代码比较,可以发现中的内容,即服务器端代码被进行了处理。根据前面
9、所讲的ASP的工作过程可以知道,这是因为Web服务器将服务器端代码转换为HTML代码之后才将其返回客户端。因此,在客户端能看到的源文件均为Web服务器转换之后的代码,这在一定程度上保证了ASP源程序的安全性。第一节 ASP概述四、ASP文件的创建与运行第一节 ASP概述四、ASP文件的创建与运行第二节 ASP脚本语言基础一、ASP脚本语言概述(一)什么是VBScriptVBScript是Visual Basic Script的简称,它将灵活的脚本语言应用于广泛的领域,包括Internet Explorer中的Web客户端脚本和Internet Information Server中的Web服务
10、器端脚本。VBScript应用于Web客户端脚本的好处是可以在浏览器中完成所有的工作,这样可以减轻服务器的负担,并且在客户端运行程序要比在服务器端运行程序快得多。第二节 ASP脚本语言基础一、ASP脚本语言概述(一)什么是VBScript此时,当一个用户通过浏览器请求某个服务时,不必通过网络对其做出响应,客户端的程序即可快速提供服务。需要注意的是,只有Microsoft Internet Explorer浏览器能够解释执行VBScript脚本,而其他浏览器将忽略VBScript脚本。采用VBScript作为服务器端脚本语言的好处是不会受到客户端浏览器类型的限制。第二节 ASP脚本语言基础一、A
11、SP脚本语言概述(一)什么是VBScriptVBScript脚本在服务器端被执行,然后再通过网络传送到客户端,Web浏览器接收到的只是标准的HTML文档。更为重要的是,在服务器端的Web页中添加VBScript脚本还可以动态地创建传送到客户端浏览器的Web内容。第二节 ASP脚本语言基础一、ASP脚本语言概述(一)什么是VBScriptVBScript使用ActiveX Script与宿主应用程序对话。使用ActiveX Script,浏览器和其他宿主应用程序不再需要每个脚本部件的特殊集成代码。ActiveX Script使宿主可以编译Script、获取和调用入口点及管理开发者可用的命名空间。
12、ActiveX Script还可以使语言厂商建立标准的脚本运行语言。第二节 ASP脚本语言基础一、ASP脚本语言概述(二)在HTML中嵌入VBScript代码前面已经介绍了如何在HTML中添加VBScript脚本形成ASP页面文件,VBScript作为服务器端脚本使用时,通常应放在中。下面再通过一个例子来进行说明。【例6-2】在HTML中嵌入VBScript脚本。第二节 ASP脚本语言基础一、ASP脚本语言概述(二)在HTML中嵌入VBScript代码font size=电子商务网站建设第二节 ASP脚本语言基础一、ASP脚本语言概述(二)在HTML中嵌入VBScript代码程序代码中的第一行
13、用来告诉服务器,本程序使用VBScript脚本语言来编写代码,程序中采用了VBScript的循环语句来控制输出不同字号的文字,相应的循环控制语句和变量等都必须写在一对特定的标签中。以上程序中的循环ForNext结构将在本节后面详细介绍。第二节 ASP脚本语言基础一、ASP脚本语言概述(二)在HTML中嵌入VBScript代码将代码命名为6-2.asp,并将其保存到C:Inetpubwwwroot文件夹中,在IE浏览器的地址栏中输入http:/127.0.0.1/ch6/62.asp或http:/localhost/ch6/62.asp即可得到图6-4所示的效果。第二节 ASP脚本语言基础一、A
14、SP脚本语言概述(二)在HTML中嵌入VBScript代码第二节 ASP脚本语言基础二、VBScript数据类型VBScript只有一种数据类型,称为Variant。Variant是一种特殊的数据类型,根据使用的方式,它能包含不同类别的信息。因为Variant是VBScript中唯一的数据类型,所以它也是VBScript中所有函数返回值的数据类型。最简单的Variant包含数字或字符串信息。Variant用于数字上下文中时作为数字处理,用于字符串上下文中时作为字符串处理。第二节 ASP脚本语言基础二、VBScript数据类型这就是说,如果使用看起来像是数字的数据,则VBScript会假定其为数
15、字并以适用于数字的方式处理。与此类似,如果使用的数据只可能是字符串,则VBScript将其按字符串处理。当然,也能将数字包含在引号(“”)中使其成为字符串。课本127页表6-1显示了Variant包含的数据子类型。第二节 ASP脚本语言基础三、VBScript变量与常量(一)变量变量是一种使用方便的占位符,用于引用计算机内存地址,该地址能存储Script运行时可更改的程序信息。例如,创建一个名为ClickCount的变量来存储用户单击Web页面上某个对象的次数。使用变量不必了解变量在计算机内存中的地址,只要通过变量名引用变量就能查看或更改变量的值。在VBScript中只有一个基本数据类型,即V
16、ariant,因此所有变量的数据类型都是Variant。第二节 ASP脚本语言基础三、VBScript变量与常量(一)变量1.变量的命名2.变量的声明3.变量赋值4.变量的作用域5.变量的存活期第二节 ASP脚本语言基础三、VBScript变量与常量(二)常量常量是具有一定含义的名称,用于代替数字或字符串,其值从不改变。VBScript定义了许多固有常量。使用Const语句能创建字符串型或数值型常量,并给它们赋值。例如:Const MyString=欢迎您Const MyAge=30第二节 ASP脚本语言基础三、VBScript变量与常量(二)常量请注意字符串文字包含在两个引号()之间。这是区
17、分字符串型常量和数值型常量的最明显的方法。日期文字和时间文字包含在两个井号(#)之间。例如:Const CutoffDate=#6197#通常应采用一个命名方案以区分常量和变量,这样能避免在运行脚本时对常量重新赋值的错误。例如,使用“vb”或“con”作为常量名的前缀,或将常量名的所有字母大写。第二节 ASP脚本语言基础四、VBScript表达式与运算符在VBScript中,表达式可以将变量、常量、运算符和关键字结合起来,用于执行运算、处理字符或者测试数据,表达式运算返回的结果可能是数值型数据,也可能是字符串型或者其他类型的数据。用户对于表达式应该是十分熟悉的,例如,1+2就是一个简单的表达式
18、。在表达式运算的过程中,操作一个或两个变量、常量或者数据产生运算结果的符号称为运算符,被运算符操作的数据称为操作数。第二节 ASP脚本语言基础四、VBScript表达式与运算符需要注意的是,操作数并不仅仅局限于数字和字符串等类型的数据,它本身也可以是表达式。VBScript支持一套完整的运算符,其中包括算术运算符、比较运算符、逻辑运算符和连接运算符。当表达式包含多个运算符时,将按预定顺序计算每一部分,这个顺序被称为运算符优先级。可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分。运算时,总是先执行括号中的运算符,然后再执行括号外的运算符。不过,在括号中仍遵循标准运算符优先级的原则。第
19、二节 ASP脚本语言基础四、VBScript表达式与运算符当表达式包含多种运算符时,首先计算算术运算符,然后计算比较运算符,最后计算逻辑运算符。如果所有比较运算符的优先级相同,则按照从左到右的顺序计算比较运算符。当乘号和除号同时出现在一个表达式中时,按从左到右的顺序计算乘、除运算。同样,当加号和减号同时出现在一个表达式中时,按从左到右的顺序计算加、减运算。第二节 ASP脚本语言基础四、VBScript表达式与运算符字符串连接(&)运算符不是算术运算符,不过在优先级顺序中,它排在所有算术运算符之后和所有比较运算符之前。Is运算符是对象引用比较运算符,它并不比较对象或对象的值,而只是进行检查,判断
20、两个对象引用是否指向同一个对象。第二节 ASP脚本语言基础五、VBScript内置函数(一)日期时间函数VBScript提供的部分日期时间函数及其描述如课本129页表6-3所示。第二节 ASP脚本语言基础五、VBScript内置函数(二)数据类型转换函数VBScript提供的部分数据类型转换函数如课本130页表6-4所示。第二节 ASP脚本语言基础五、VBScript内置函数(三)数学运算函数VBScript提供的部分数学运算函数如课本131页表6-5所示。第二节 ASP脚本语言基础五、VBScript内置函数(四)字符处理函数VBScript提供的部分字符处理函数如课本132页表6-6所示第
21、二节 ASP脚本语言基础六、VBScript数据输入与输出(一)MsgBox函数信息框函数(MsgBox)是常用的输出信息的函数。它在对话框中显示信息,等待用户单击按钮,并返回一个整数以标明用户单击了哪一个按钮。其语法格式如下:变量=MsgBox(信息内容),)第二节 ASP脚本语言基础六、VBScript数据输入与输出(一)MsgBox函数信息内容指定在对话框中出现的文本,在信息内容中使用硬按Enter键符(CHR(13)可以使文本换行。对话框的宽度和高度随着内容的增加而增加,对话框最多可以容纳1 024个字符。对话框类型指定对话框中出现的按钮和图标,一般有3个参数,其取值和含义如表6-7、
22、表6-8和表6-9所示。第二节 ASP脚本语言基础六、VBScript数据输入与输出(二)InputBox函数输入框(InputBox)函数显示一个能接受用户输入的对话框,并返回用户在对话框中输入的信息。其语法格式为:变量InputBox(,)指定在对话框中出现的文本。在中使用硬按Enter键符(CHR(13)可以使文本换行。第二节 ASP脚本语言基础六、VBScript数据输入与输出(二)InputBox函数对话框的高度和宽度随着的增加而增加,最多可以容纳1 024个字符。指定对话框的标题。第二节 ASP脚本语言基础六、VBScript数据输入与输出(二)InputBox函数可以指定输入框中
23、显示的默认文本。如果用户单击“确定”按钮,输入框中的文本(字符串)将返回到变量中,若用户单击“取消”按钮,将返回一个零长度的字符串。如果函数中省略了某些可选项,仍必须保留相应的逗号分隔符。第二节 ASP脚本语言基础七、条件语句和循环语句(一)条件语句1.IfThenElse2.IfThenElseIf3.Select Case第二节 ASP脚本语言基础七、条件语句和循环语句(二)循环语句循环语句用于重复执行一组语句。循环语句可分为3类:一类在条件变为False之前重复执行语句,一类在条件变为True之前重复执行语句,另一类按照指定的次数重复执行语句。在VBScript中可使用下列几种循环语句。
24、第二节 ASP脚本语言基础七、条件语句和循环语句(二)循环语句1.DoLoop2.WhileWend 循环语句3.ForNext循环语句4.For Each inNext第二节 ASP脚本语言基础八、VBScript过程Sub过程Sub过程是包含在Sub和End Sub语句之间的一组VBScript语句,执行操作但不返回值。Sub过程可以使用参数(在调用过程时传递的常量、变量或表达式)。如果Sub过程无任何参数,则Sub语句仍须包含空括号()。(一)第二节 ASP脚本语言基础八、VBScript过程Function过程Function过程是包含在Function和End Function语句之
25、间的一组VBScript语句。Function过程与Sub过程相似,但Function过程可以返回值。(二)第二节 ASP脚本语言基础八、VBScript过程Function过程此外,Function过程可以使用参数(由调用过程传递的常量、变量或表达式),如果Function过程无任何参数,则Function语句仍须包含空括号()。Function过程通过函数名返回一个值,这个值是在该过程的语句中赋给函数名的。Function过程返回值的数据类型总是Variant。(二)第二节 ASP脚本语言基础八、VBScript过程Sub和Function过程的调用需要注意的是,在程序中Function过
26、程是作为表达式或表达式的一部分被调用的,而Sub过程则是直接作为命令被调用的。此外,Function过程本身可以返回值,而Sub过程本身是不返回值的。(三)第二节 ASP脚本语言基础八、VBScript过程Sub和Function过程的调用调用Sub过程时,只需输入过程名及所有参数值,参数值之间使用逗号分隔,不需要使用call语句;但如果使用了call语句,则必须将所有参数都包含在括号中。(三)第三节 ASP内置对象一、Response对象(一)Response对象的集合Response对象常用的集合是Cookies。它用来设置cookie的值。如果不存在cookie,就必须先创建cookie
27、,然后再为其设置指定的值。第三节 ASP内置对象一、Response对象(二)Response对象的方法Response对象的主要方法如课本142页表6-11所示。下面介绍Response对象常用的Write、Redirect、End、Clear及Flush方法。1.Response.Write方法2.Response.Redirect方法第三节 ASP内置对象一、Response对象(二)Response对象的方法3.Response.End方法4.Response.Clear方法5.Response.Flush方法第三节 ASP内置对象一、Response对象(三)Response对象的属
28、性Response对象的主要属性如课本144页表6-12所示。1.Response.Buffer属性2.Response.IsClientConnected属性第三节 ASP内置对象二、Request对象(一)Request对象的集合、属性和方法Request对象的集合如课本145页表6-13所示。第三节 ASP内置对象二、Request对象(二)Request对象的用法1.表单数据的读取与处理2.Cookies的创建与使用第三节 ASP内置对象三、Application对象Application对象可用来在ASP应用程序的所有用户之间共享信息,也可以用来在Web服务器运行期间持久地保存某些数
29、据。此外,如果不加以限制,所有的用户都可以访问Application对象。第三节 ASP内置对象三、Application对象Application对象的语法格式如下:Application.集合|方法 Application对象的集合如表6-14所示。第三节 ASP内置对象三、Application对象下面举例说明Application对象的一些用途。1.记录共享变量的值2.制作站点访问计数器第三节 ASP内置对象四、Session对象操作一个应用程序的过程是先启动它,然后做些改变,最后关闭它。这个过程很像一次会话(session)。在此过程中,计算机知道用户是谁,也知道用户在何时启动和关闭
30、这个应用程序。但在互联网上Web服务器不知道用户是谁,也不知道用户要做什么,这是由于HTTP地址无法保存状态(信息)。ASP通过为每个用户创建一个唯一的Cookie解决了这个问题。Cookie 发送到服务器,它包含了可识别用户的信息。第三节 ASP内置对象四、Session对象Session对象用于存储某个用户会话(session)的信息或者修改相关的设置。存储在Session对象中的变量掌握着单一用户的信息,同时这些信息对于页面中的所有子页面(即通过当前页面打开的新窗口或新页面)都是可用的。存储于Session变量中的信息通常是name、ID以及参数等。服务器会为每位新用户创建一个新的Ses
31、sion对象,并在Session到期后撤销此对象。第三节 ASP内置对象四、Session对象Session对象与Application对象类似,主要作用都是将变量的值保存起来。这两个对象最大的差别是:Session对象为每个来访者提供独立的对象响应,而Application对象则为所有来访者提供共享的对象响应。在ASP中可以通过Session对象来记录或跟踪某个访问者的相关信息,以便该访问者再次提出访问请求时做出确认。事实上,来到某个特定网站的访问者都会单独获得一个Session对象。在整个会话期间,Session对象中的变量值都不会丢失,直到会话超时或访问者离开时,该Session对象才被
32、释放。第三节 ASP内置对象四、Session对象Session对象中的变量可供某个客户端的用户在一个Web应用的所有页面中共享数据,如果另一个客户端的用户也在同时访问该Web站点,将另外拥有自己的Session变量,且两个用户之间无法通过Session变量共享数据。Session对象的语法格式如下:Session.集合|方法|属性第三节 ASP内置对象五、Server对象Server对象的作用是访问服务器上的方法和属性。最常用的方法是创建ActiveX组件的实例(Server.CreateObject)。其他方法用于将URL或HTML编码成字符串,将虚拟路径映射到物理路径以及设置脚本的超时期
33、限等。Server对象的语法格式如下:Server.属性|方法第三节 ASP内置对象五、Server对象Server对象的主要属性为ScriptTimeout,用来设置或返回在一段脚本终止前它所能运行时间(秒)的最大值(默认为90 s)。第三节 ASP内置对象五、Server对象下面对Server对象中较常用的MapPath、Execute、HTMLEncode和CreateObject方法进行说明。1.Server.MapPath方法2.Server.Execute方法3.Server.HTMLEncode方法4.Server.CreateObject方法第四节 ASP内置组件ASP内置了一
34、些ActiveX组件,利用这些组件可以实现Web应用程序中常涉及的许多功能,如实现服务器端文件的存取与管理、应用数据库的访问、浏览器的兼容、Web页面的广告轮换等。ASP主要的内置组件如课本156页表6-22所示。第四节 ASP内置组件一、简答题1.什么是ASP?ASP是怎样工作的?ASP文档包括哪些组成要素?2.什么是VBScript?它的作用是什么?3.在VBScript中唯一的数据类型是什么?它有哪些子类型?4.什么是VBScript的变量?在VBScript程序中怎样声明变量?第四节 ASP内置组件5.在ASP脚本代码中,“”语句的作用是什么?6.在VBScript程序中,有哪些用于控
35、制程序流程的语句?简述这些程序流程控制语句的工作过程。第四节 ASP内置组件7.什么是VBScript的过程?Sub过程和Function过程在定义和调用时的主要区别表现在哪些方面?8.最常用的ASP内置对象是哪几个?各有什么用途?简述Application对象与Session 对象的异同。第四节 ASP内置组件二、实践题1.利 用 各 种 VBScript循 环 语 句 编 写 计 算 100!,即1234100的乘积的程序。2.编写一个名为Calc的Function过程,用来根据输入的单价(price)、数量(quantity)和折扣(discount)计算应付金额。3.利用ASP的内置对象制作一个较为实用的站点访问计数器。THANK YOU