动态网页制作与编程-4-asp+access_第1页
动态网页制作与编程-4-asp+access_第2页
动态网页制作与编程-4-asp+access_第3页
动态网页制作与编程-4-asp+access_第4页
动态网页制作与编程-4-asp+access_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、动态网页制作与编程孟宇龙mengyulong哈尔滨工程大学计算机科学与技术学院1计算机科学与技术学院608教研室本次课程主要内容一、ASP文件的基本构成和约定二、在DW 中设置ASP服务器站点三、VBScript脚本语言介绍四、ASP的内置对象五、ASP的数据库存取组件及ADO技术六、一个实例2 是在服务器端运行的程序代码,对客户端是保密的,不能通过查看源代码来得到 是运行在客户端浏览器里的脚本 是服务器端的! 3一、ASP文件的基本构成和约定1、基本构成ASP程序中通常由以下3个部分构成:普通的HTML文件,即一般的Web页面内容放在内的Script脚本语言代码,由服务器端运行。放在 内的S

2、cript脚本语言代码,由客户端直接运行。4二、在DW 中设置ASP服务器站点在完成上述ASP本地计算机环境构建的工作后,介绍在DW中配置用于ASP开发的站点环境,以及利用DW进行站点管理的必要知识 。 5创建虚拟目录当Web服务器启动后,只要将ASP文件放在其默认主目录“C:Inetpubwwwroot”下即可运行。但为了调试方便,往往需创建一个虚拟目录。所谓虚拟目录,就是在URL地址中使用的目录名称,或称之为URL映射,其可以与物理目录相同,也可以不同。下面以Windows XP为例介绍如何创建虚拟目录。具体操作步骤如下: 首先,在计算机上创建一个名为ASP的文件夹,比如D:ASPWEB。

3、 其次,打开“Internet信息服务”对话框(方法见上。 6创建虚拟目录下面以Windows XP为例介绍如何创建虚拟目录。具体操作步骤如下: 首先,在计算机上创建一个名为ASP的文件夹,比如D:MYASPWEB。 其次,打开“Internet信息服务”对话框(方法见上)。 7创建虚拟目录(续上) 选中“默认Web站点”,单击右键,选择“新建虚拟目录”,出现如图1-9所示安装向导对话框。 8创建虚拟目录(续上) 在向导过程中,依次输入相应内容:别名“MYASPWEB”、目录“D:MYASPWEB”以及权限“至少包含读取和运行脚本”后,单击“完成”按钮即可,此时如图所示。 9创建虚拟目录(续上

4、) 选中“MYASPWEB”,单击右键,选择“属性”,出现如图所示对话框,可以对虚拟目录重新设置。10创建虚拟目录(续上) 单击“文档”选项,可以添加新的默认文档,如index.htm或index.asp,并可以调整其先后顺序,如图1-12所示。至此,虚拟目录就创建完成了,以后课程中所有的例子,只要存放在该目录下即可进行调试运行。 11续上12续上13续上14续上15续上16续上17续上18续上19续上20三、VBScript脚本语言介绍3.1 什么是VBScript3.2 VBScript的基本格式3.3 变量和数据类型3.4 程序控制语句3.4.1 选择语句3.4.2 循环语句3.5 函数

5、3.5.1 转换函数3.5.2 输入输出函数3.5.3 字符串函数3.5.4 日期和时间函数3.5.5 数学函数3.5.6 检验函数3.6 过程3.6.1 sub子过程3.6.2 function函数213.1 什么是VBScriptVBScript是一种脚本语言,它是嵌入在标准的HTML语言中实现的,由于VBScript脚本语言直接来源于VB(Visual Basic)语言,而VB语言是风靡全球的一种学习简单、功能强大的程序设计语言,因此VBScript也继承了VB的简单易学的特点。一般来说,脚本程序既可以放在客户端浏览器执行,也可以在服务器端执行。对于ASP程序而言,通常我们把VBScri

6、pt放在服务器端执行。在服务器端运行,通俗地说就是把脚本语言放在之间。有时为了方便或某种需要,也可以放在客户端执行。223.2 VBScript的基本格式【例3-1】利用VBScript编写的Hello World程序。exam4-1.aspexam4_1.asp233.2 VBScript的基本格式(续上)通过这个实例,在HTML语言中插入VBScript脚本语言的方式有两种,即客户端浏览器执行和服务器端执行。客户端浏览器执行时,其语法格式为:服务器端执行时,其语法格式为:或注:VBScript语句对大小不区分。243.3 变量和数据类型VBScript只有一种数据类型,称为Variant,

7、也叫变体类型。Variant是一种特殊的数据类型,根据不同的使用方式,它包含不同的数据类别信息。Variant变量中保存的数据类型为变量的子类型。【例3-2】VBScript的变量定义、声明及赋值。通过这个实例,可以得到VBScript变量的定义方法和赋值方法等,其语法格式为:dim 变量名变量名=数据的值exam4_1.asp253.3 变量和数据类型Variant 子类型除简单数字或字符串以外,Variant可以进一步区分数值信息的特定含义。例如使用数值信息表示日期或时间。此类数据在与其他日期或时间数据一起使用时,结果也总是表示为日期或时间。当然,从Boolean值到浮点数,数值信息是多种

8、多样的。Variant 包含的数值信息类型称为子类型。大多数情况下,可将所需的数据放进Variant中,而Variant也会按照最适用于其包含的数据的方式进行操作。 Variant的数据子类型如表3-1所示。一般来说,Variant变量回将其代表的数据子类型自动转换,但有时候,也会遇到一些数据类型不匹配造成的错误,就像一个人加一头牛等于什么的错误,这时,可是使用VBScript的转换函数来强制转换数据的子类型。263.3 变量和数据类型Variant 子类型子类型描 述Empty未初始化的Variant。对于数值变量,值为 0;对于字符串变量,值为零长度字符串 ()。Null不包含任何有效数据

9、的Variant。Boolean包含True或False。Byte包含 0 到 255 之间的整数。Integer包含 -32,768 到 32,767 之间的整数。Currency-922,337,203,685,477.5808 到 922,337,203,685,477.5807。Long包含 -2,147,483,648 到 2,147,483,647 之间的整数。Single包含单精度浮点数,负数范围从 -3.402823E38 到 -1.401298E-45,正数范围从 1.401298E-45 到 3.402823E38。Double包含双精度浮点数,负数范围从 -1.79769

10、313486232E308 到 -4.94065645841247E-324,正数范围从 4.94065645841247E-324 到 1.79769313486232E308。Date (Time)包含表示日期的数字,日期范围从公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日。String包含变长字符串,最大长度可为 20 亿个字符。Object包含对象。Error包含错误号。表3-1 Variant的数据子类型273.3 变量和数据类型常量在VBScript中,通常使用关键字Const来声明常量。例如:Const MyString = 这是一个字符串。Const

11、PI=3.1415926注意:最好采用一个命名方案以区分常数和变量。这样可以避免在运行脚本时对常数重新赋值。例如,可以使用“vb”或“con”作常数名的前缀,或将常数名的所有字母大写。将常数和变量区分开可以在开发复杂的脚本时避免混乱。283.3 变量和数据类型变量在VBSscript中,使用变量之前一般不需要预先声明它,赋值后自动声明该变量,以后即可被引用。但编写长而复杂的程序,建议还是先声明再使用。像许多高级语言一样,VBScript变量根据作用域的不同也可分为过程级变量和全局级变量。变量的作用域可以根据需要,由声明它的位置决定。293.3 变量和数据类型数组数组的命名、声明、赋值和使用同前

12、面的变量基本上是一致的,不同的是需要定义数组中的项目数。例如:一般来说,VBScript中的数组下标是从0开始计数,故上述定义的a(2)有3项。对于多维数组的声明也很简单,例如:另外,还可以声明一个变长数组,或称为动态数组,即声明数组时可以不确定数组项目数,使用时再确定,例如:303.3 变量和数据类型运算符在VBScript中,几乎继承了Visual Basic的所有类别的运算符,包括算术运算符、比较运算符、逻辑运算符和连接运算符。例如:具体各种运算符及说明如表3-2所示。算术运算符连接运算符比较运算符逻辑运算符。在同一类运算符中,应按从左到右的顺序进行计算。313.3 变量和数据类型运算符

13、表3-2 各种运算符及其说明 算术运算符比较运算符逻辑运算符连接运算符符号说明符号说明符号说明符号说明+加=等于Not逻辑非&用于连接两个字符串-减大于And逻辑与*乘=大于等于Xor逻辑异或取整除法=小于等于Eqv逻辑等价Mod取模不等于Imp逻辑隐含幂Is比较两个对象是否相同323.4.1 选择语句(一)1、ifthenelse语句以下几种形式:(1)if 条件语句 then语句段end if(2)if 条件语句 then语句段1else语句段2end if(3)if 条件语句1 then语句段1elseif 条件语句2 then语句段2else语句段n+1end if333.4.1 选择

14、语句(实例)【例3-3】根据分数给出相应的等级。exam4_3.asp343.4.1 选择语句(二)2、select case语句select case 表达式case 结果1语句段1case 结果2语句段2case 结果n语句段ncase else语句段n+1end select说明:首先对表达式进行运算。该运算可以为数学运算或字符串运算。然后将运算结果依次与结果1到结果n+1作比较,当找到与计算结果相等的结果时就执行该语句段,执行完毕就跳出select case条件式。而当运算结果与所有的结果都不相等时,就执行case else后面的语句段n+1。 353.4.1 选择语句(实例)【例3-

15、4】根据等级分给出相应的信息。exam4_4.asp363.4.2 循环语句通常,有以下几种循环语句:fornext:指定循环次数,使用计数器循环运行语句。doloop:当条件为true时或条件变为true之前,重复执行语句段。for eachin:对数组中的每个元素或对象集中的每一项进行重复一组语句。whilewend:当循环条件为“真”时循环。373.4.2 循环语句(一)1、fornext循环该循环是一种强制型循环,用语将语句段运行指定的次数。在循环体中使用计数器变量,该变量随每次循环增加或减少。其语法格式如下:for counter = start to end step step语句

16、段next其中:counter循环的计数器变量start计数器的初始值end计数器的终值step计数器的步长,可以为正、负、整数和小数,默认值为1exam4_5.asp383.4.2 循环语句(二)2、doloop循环该循环是一种条件型的循环,当条件为true时或条件变为true之前,重复执行语句段。一般来说,有两种类型:入口型循环和出口型循环。(1)入口型循环该类循环是先判断条件,再执行循环体语句段。其语法格式如下:do while 条件1或do until 条件2语句段语句段looploop说明:前者是while型循环,它首先检查条件1是否为true,如果为true,才会进入循环体中执行语

17、句段,否则跳出循环;后者是until型循环,它首先检查条件2是否已变为true,如果为true,就跳出循环,否则进入循环体中执行语句段。(2)出口型循环该类循环是先执行循环体语句段,再判断条件。其语法格式如下:do或do语句段语句段loop while 条件3loop until 条件4exam4_6_1.asp393.4.2 循环语句(三)3、for eachin循环该循环是一种特殊的循环,它用于对数组中的每个元素或对象集中的每一项进行重复一组语句。比如说,在ASP中经常要返回一个数据集合等。其语法格式如下:for each 元素 in 集合语句段next4、whilewend循环该循环是一

18、个不太常用的循环语句。因为它能实现的功能,doloop也能实现。建议一般不要使用。其语法格式如下:while 条件语句段wend5、强行退出循环一般情况下,都是根据条件判断退出循环,但有时候需要强行退出循环。其方法如下:(1)在fornext循环中,使用跳出循环命令exit for;(2)在doloop循环中,使用跳出循环命令exit do。exam4_6_2.asp403.5.1 转换函数在VBScript中,虽然Variant变量一般会将其代表的数据子类型自动转换成合适的数据类型。但有时候也会造成一些数据类型不匹配的错误,这时,往往需要使用转换函数来强制转换数据的子类型。常见的转换函数如表

19、3-3所示。 函数功能CStr(Variant)将变量Variant转化为字符串类型Cdate(Variant)将变量Variant转化为日期类型Cint(Variant)将变量Variant转化为整数类型CLng(Variant)将变量Variant转化为长整数类型CSng(Variant)将变量Variant转化为Single类型CDbl(Variant)将变量Variant转化为Double类型CBool(Variant)将变量Variant转化为布尔类型413.5.2 输入输出函数1、MsgBox函数该函数告诉用户一些信息。其语法格式如下:MsgBox(prompt,button,ti

20、tle)其中:prompt显示在窗口中的文字button可选项,用以指定窗口的外观和按钮的类型title可选项,显示在窗口标题中的文字423.5.2 输入输出函数2、InputBox函数该函数用于显示一个输入窗口,要求用户输入数据。其语法格式如下:string = InputBox(prompt,title,default)其中:string文本框中的文字内容,即用户输入的内容prompt显示在窗口中的文字title可选项,显示在窗口标题中的文字default可选项,用于指定窗口中文本输入框内的默认字符串exam4_7.asp433.5.3 字符串函数在ASP程序开发中,字符串的应用相当广泛,

21、比如说用户注册时输入的用户名、密码等选项信息,都是作为字符串来处理的。下面给大家列出常见的字符串函数,如表3-4所示。 函数功能Len(string)返回string字符串里的字符数目Trim(string)将字符串前后的空格去掉Mid(string,start,length)从string字符串的start字符开始取得length长度的字符串,如果省略第三个参数表示是取从start字符开始到字符串结尾的字符串Left(string,length)从string字符串的左边取得length长度的字符串Right(string,length)从string字符串的右边取得length长度的字符串

22、Lcase(string)将string字符串里的所有大写字母转化为小写字母Ucase(string)将string字符串里的所有小写字母转化为大写字母StrComp(str1,str2)返回str1字符串与str2字符串的比较结果,如果两个字符串相同,则返回0443.5.4 日期和时间函数在VBScript中,可以使用日期和时间函数来获得各种格式的日期和时间。其常见函数如表3-5所示。函数语法功能NowNow()取得系统当前日期和时间DateDate()取得系统当前日期TimeTime()取得系统当前时间MonthMonth(Date)取得给定日期的月份DayDay(Date)取得给定日期是

23、几号WeekDayWeekDay(Date)取得给定日期是星期几YearYear(Date)取得给定日期的年份FormatDateTimeFormatDateTime(Date,vbShortDate)显示短日期格式FormatDateTime(Date,vbLongDate)显示长日期格式FormatDateTime(Date,vbShortTime)显示短时间格式FormatDateTime(Date,vbLongTime)显示长时间格式453.5.4 日期和时间函数(实例)【例4-8】日期和时间函数的使用。exam4_8.asp463.5.5 数学函数在VBScript中,常见的数学函数

24、如表3-6所示。函数功能Abs(number)返回一个数的绝对值Sqr(number)返回一个数的平方根Int(number)取整函数,返回小于等于number的第一个整数Cos(number)返回角度的Cos值Sin(number)返回角度的Sin值Log(number)返回一个数的Log值Tan(number)返回角度的Tan值Rnd(number)返回一个随机数473.5.6 检验函数在设计ASP程序中,有时为了防止某些人有意的胡乱填写或无意的遗漏了某些选项,需要程序对用户填写的内容进行检查等,此时,往往就要用到其检验函数。常见的检验函数如表3-7所示。函数功能VarType(Varia

25、nt)检查变量Variant的值,函数值为该变量的数据类型IsEmpty(Variant)检查变量Variant的值,如果Variant是Empty,则函数值为trueIsNull(Variant)检查变量Variant的值,如果Variant是Null,则函数值为trueIsObject(Variant)检查变量Variant的值,如果Variant是对象类型,则函数值为trueIsNumeric(Variant)检查变量Variant的值,如果Variant是数字类型,则函数值为trueIsArray(Variant)检查变量Variant的值,如果Variant是数组类型,则函数值为tr

26、ueIsDate(Variant)检查变量Variant的值,如果Variant是日期类型,则函数值为true483.6.1 sub子过程sub子程序的语法格式如下:sub 子程序名(参数1,参数2,)end sub或sub 子程序名()end sub其中:“参数1,参数2,”是指由调用过程传递的常数、变量或表达式。利用这些参数,可以传递数据。若无参数,则必须使用空括号。sub子程序的调用方式有两种:(1)使用call语句call 子程序名(参数1,参数2,)(2)不使用call语句子程序名 参数1,参数2,exam4_9.asp493.6.2 function函数function函数的语法格

27、式如下:function 函数名(参数1,参数2,)end function或function 函数名()end function其中:“参数1,参数2,”是指由调用过程传递的常数、变量或表达式。利用这些参数,可以传递数据。若无参数,则必须使用空括号。与sub子程序不同的是function函数必须返回一个结果值,该值的数据类型是Variant。Function函数的调用方式有一种,即直接调用函数名,而且函数名必须用在变量赋值语句的右端或表达式中。exam4_9.asp50四、ASP的内置对象4.1 从客户端获得信息的Request对象4.1.1 Request对象简介4.1.2 获取信息的方法

28、Form和QueryString4.1.3 得到服务器属性的方法ServerVariables4.2 向客户端输出信息的Response对象4.2.1 Response对象简介4.2.2 直接输出信息的方法Write4.2.3 引导客户端至另一个URL位置的方法Redirect4.2.4 关于Buffer属性4.2.5 Request对象和Response对象的综合使用4.3 Cookies51四、ASP的内置对象(续上)4.4 记载特定客户信息的Session对象4.4.1 Session对象简介4.4.2 利用Session存储信息4.4.3 利用Session存储数组信息4.4.4 Se

29、ssion对象的属性和方法4.5 记载所有客户信息的Application对象4.6 服务器Server对象4.7 ASP内置对象的综合举例524.1.1 Request对象简介Request对象是ASP内置对象中较为重要的一类对象。主要负责的是从客户端获得具体的用户数据信息。也就是说,可以使用Request对象访问任何基于HTTP请求传递的所有信息,包括从HTML表格用POST方法或GET方法传递的参数、cookie和用户认证。Request对象使您还能够方便的访问客户端发送给服务器的二进制数据。Request对象把用户信息保存在几个集合中,供ASP应用来使用。Request的语法:Requ

30、est.collectionpropertymethod(variable)表4-1是Request对象集合的相关变量。变量说明QueryStringHTTP请求中查询字符串中变量的值Form存取用户在窗体中输入的相关字段的值Cookies获取客户端中Cookies的内容ServerVariables指定的服务器环境变量的值ClientCertificate在发送HTTP请求中储存的客户端证书中的字段值当用户不指定集合的名称时,ASP默认为以QueryString、Form、Cookie和ServerVariable的顺序搜索所有的集合,当发现匹配的变量时,就认定他是要引用的成员。当然,一般我

31、们在使用时都指定是哪个集合成员,以便于提高程序的效率。例如:Request.Form(yourname)变量说明QueryStringHTTP请求中查询字符串中变量的值Form存取用户在窗体中输入的相关字段的值Cookies获取客户端中Cookies的内容ServerVariables指定的服务器环境变量的值ClientCertificate在发送HTTP请求中储存的客户端证书中的字段值534.1.2 获取信息的方法Form1、使用Form集合获取信息我们使用Form变量是用来获取用户在窗体中填写的相关信息。但是在使用Request.Form的对象时,HTML标记中的必须使用“POST”方法,

32、否则将无法取得窗体中的字段信息。Form的用法:Request.Form(Element)(Index).Count其中,Request.Form(Element)的值为请求正文中所有Element值构成的一个数组,通过调用Request.Form(Element).Count来确定参数中值的个数。如果参数未进行关联,则Count的值为1。如果找不到该项参数,则为0。如关联了多个值,则必须指定Index的值。Index的值为1到Request.Form(Element).Count中的任意整数。下面我们用一个例子来说明一下。544.1.2 获取信息的方法QueryString2、使用Query

33、String集合获取信息QueryString集合:一般用于检索客户HTTP请求中字符串变量的值。QueryString的用法:Request.QueryString(Variable)(Index)|.Count其中,Variable指的是查询字符串中要检索的变量名称,Index和Count的用法类似于Form集合的用法。还有要说明的是,通常我们在地址栏中都是以QueryString变量的方法传送变量名及数值。而且需要注意变量的名称与内容必须放在“?”符号的后面。我们以一个简单的例子来说明其用法。exam4_11.asp554.1.3 得到服务器属性的方法ServerVariables当我们

34、想获取服务器端的各种信息时,我们可以用 ServerVariables集合来获得。ServerVariables的用法:Request.ServerVariables(Server Environment Variable)exam4_12.asp564.2.1 Response对象简介Request对象是从客户端获取信息,而Response对象恰恰相反,它的作用是将ASP程序运行后的结果信息发送到客户端。Response对象不像Request对象那么简单,它具有很多的集合、属性和方法。在众多的类别中,经常用到的是Write方法、Redirect方法以及Buffer属性。Response对象的

35、基本用法:Response.collection|property|method574.2.1 Response对象简介1、Response的属性Response对象具有很多属性,具体情况如表4-3所示。属性说明* Buffer说明了页输出是否有缓冲。ContentType指定即将开始被送至客户端浏览器的信息种类,默认值是text/HTML。Expires在浏览器中缓存的页面超时前,指定缓存的时间。Status服务器返回的状态行值。IsClientConnected该值表明了客户端与服务器的状态是连接还是断开584.2.1 Response对象简介(续上)2、Response对象的方法方法说明

36、Clear清除所有缓冲中的HTML输出End立即停止当前正在处理的.ASP文件,并且将会返回当前缓冲区里的所有信息。Flush立刻将所有缓冲区内的信息发送到客户端* Redirect将重定向的URL发送给浏览器,并尝试连接* Write直接以HTML的方式输出信息594.2.1 Response对象简介(续上)3、集合对象对于Response而言,它的集合对象只有Cookies一种。它设置了Cookie的值。如果指定的Cookie不存在,则自动的创建它。Cookies集合的具体属性情况见下表。属性说明Domain该值只允许写,被指定时,将cookie发送到该域的请求中。Expires该值只允许

37、写,指定Cookies存放在客户端浏览器中的有效期限。Path该值只允许写,指定浏览器的网页必须在指定的路径下,该Cookies才允许被读取。HasKey该值只允许读,指定Cookies是否包含关键字。604.2.2 直接输出信息的方法Write在之前的很多例子中已经进行了验证614.2.3 引导客户端至另一个URLRedirectRedirect将重定向的URL发送给浏览器,并尝试连接。其语法为:Response.Redirect URL需要提醒的是:当调用该方法时,任何在当前页面中显式设置的响应都将被终止。而替代它的是一个经过重定向的URL。这个新的URL既可以是一个完整的网址,也可以是一

38、个HTML或ASP文件。default.asp624.2.4 关于Buffer属性1、Buffer的送出方法Web服务器在解释ASP脚本的过程中,既可以将结果立即输出到客户端的浏览器上,也可以把结果存放在缓冲区之中,等所有的ASP脚本执行完毕以后,再将所有结果输出到浏览器上。通常有三种方法可以操作Buffer:(1)在当前页面的所有服务器脚本全部处理完毕以后;(2)调用了End方法后,系统将终止当前的ASP脚本,并将原来已经完成解释的脚本送到浏览器上加以显示;(3)选择使用Flush方法立刻将缓冲区的内容送到浏览器。2、Buffer的设置Buffer的设置语法为:Response.Buffer

39、=Flag其中,Flag参数决定是否缓冲输出。当Flag标志为FALSE时,服务器在处理脚本的同时将输出发送到浏览器,此种方式为默认方式。当Flag标志为TRUE时,除非当前页面的所有ASP脚本处理完毕或调用了End或Flush方法,否则服务器不将缓冲送给浏览器。634.3 Cookies集合简介Cookies可以理解成存放在客户端的相关数值的集合,它经常被用于在客户端上存储一些数据,从而在下一次客户重新登录该网站时它是有效的。也就是说:第一次有服务器端写入客户端的系统中。以后每次访问该站点时,客户端都是先发送Cookie到服务器端,由服务器进行分析,分析完成以后产生HTML代码再返回给客户端

40、。可以用Response对象将Cookie写入客户机,同时,Request对象的Cookie集合也允许用户从客户机上检索Cookie的值。Cookie集合的用法为:Request.Cookies(Cookie)(Key)|.Attribute644.4.1 Session对象简介HTTP是一种非状态的协议,也就是说Web服务器将每个网页请求都看做是独立的,因此服务器不保留以前请求的任何信息,即使它们只早于当前请求几秒钟。这种缺陷给编写应用程序造成了很大的困难。ASP为管理会话信息问题提供了独特的解决方案。使用ASP的Session对象和服务器生成的特定用户ID,可以创建更合理的ASP应用程序,

41、以便标识每次访问的用户并收集用户信息,应用程序随后就可以利用这些信息来跟踪用户的各种选择。我们可以使用Session对象存储单个用户会话所需的一些信息。当用户通过应用程序的页面向服务器发送请求时,如果该用户还没有进行会话,则自动创建一个Session对象,如果会话已经过期了,服务器将终止该会话。Session对象经常被用在电子商务的网站中,用于创建虚拟的购物篮。只要你登陆到了该网站,无论什么时候,只要你点击了购买商品的按钮,产品就会进入购物篮,当用户离开时,实际上就已经进行了他所选的所有商品的订购工作,这些购物信息就是被保存在Session对象中的。654.4.1 Session对象简介(续上

42、)需要注意的是:会话状态仅在支持cookie的浏览器中保留,如果客户关闭了Cookie选项,Session也就不能发挥作用了。Session对象的功能看起来和Cookie有些相似,但实际意义上存在着很大的区别。我们知道,Cookie中的数据是存放在客户端的浏览器中,而Session中的数据则存放在WEB服务器上面。当用户第一次登录到网站时,ASP会检查HTTP协议的头信息,看是否存在有ASPSESSIONID的字段信息发过来,如果存在,则WEB服务器就启动新的会话,为该用户创建一个全局变量,并将该值返回给客户端。ASP就是利用这种方法来访问存储在客户端上的用户独特的信息的。当然,在你不需要使用

43、Session时,你也可以告诉IIS不用对Session进行追踪,只要在ASP的最前面加上即可。Session对象的语法为:Session.Collection|Property|Method其中:Collection为Session的集合Property为Session的属性Method为Session的方法。664.4.2 利用Session存储信息利用Session对象存储用户信息,只需要简单的调用Session对象就可以了。default.asp674.4.3 利用Session存储数组信息Session对象可以提供动态关联数组,在数组中存储信息。在Session对象中存储单纯变量和对

44、象变量。要在Session对象中存储变量,需指定Session对象中已命名条目的值。可以利用Contents集合来存储数组信息。Contents集合可以包括所有未使用标记而为该会话建立的项目。也可以用于遍历集合并检索出会话中所有项目的列表。下面的例子说明了其用法。 %Session(name)=TomSession(Sex)=maleSession(year)=34For I=1 to Session.Contents.CountResponse.Write(&Session.Contents(I)NextSession.Abandon%684.4.4 Session对象的属性和方法1、Ses

45、sionIDSessionID属性返回用户的会话标识。在创建会话时,服务器会为每一个会话生成一个单独的标识符号。会话标识以长整形数据类型返回。大多数情况下SessionID可以用于WEB页面注册的统计。2、TimeOutTimeout属性以分钟为单位为Session对象指定超时时限。如果用户在该超时时限之内不刷新或重新请求网页,则该会话将终止。这段时间的默认值是20分钟。可以通过在 Internet服务管理器中设置“应用程序选项”属性页中的“会话超时”属性改变应用程序的默认超时限制设置。用户可以根据应用程序的要求来设置此值。例如,如果您希望浏览您的Web应用程序的用户在每一页仅停留几分钟,就应

46、该缩短会话的默认超时值。过长的会话超时值将导致打开的会话过多而耗尽WEB服务器的内存资源。对于一个特定的会话,如果您想设置一个小于默认超时值的超时值,可以设置Session对象的Timeout属性。例如,下面这段代码将超时值设置为10分钟。当你希望会话在长期内进行的话,你也可以设置一个大于默认设置的超时值。Session对象只有一个方法:Abandon,该方法删除所有存储在Session对象中的对象并释放这些对象的源。如果用户未明确地调用Abandon方法,一旦会话超时,服务器将删除这些对象。当服务器处理完当前页时,下面的代码将释放会话状态。69五、ASP的数据库存取组件及ADO技术5.1 数

47、据库存取组件概述5.2 数据库的建立及ODBC数据源的设置5.3 结构化查询语言SQL5.3.1 查询语句Select5.3.2 插入语句Insert Into5.3.3 更新语句Update5.3.4 删除语句Delete5.3.5 创建表语句Create table5.3.6 删除表语句Drop table5.4 ADO概述5.5 用来和数据库建立连接的Connection对象5.5.1 建立Connection对象5.5.2 Connection对象的属性和方法5.5.3 利用Connection对象存取数据库70五、ASP的数据库存取组件及ADO技术(续上)5.6 用来返回一个数据库记

48、录集的Recordset对象5.6.1 建立Recordset对象5.6.2 Recordset对象的属性和方法5.6.3 利用Recordset对象查询记录5.6.4 分页显示数据5.6.5 利用Recordset对象更新数据库5.6.6 Fields集合和Field对象5.7 用来改善查询的Command对象5.7.1 建立Command对象5.7.2 Command对象的属性和方法5.7.3 利用Command对象存取数据库5.7.4 非参数查询和参数查询5.7.5 Parameters集合和Parameter对象5.8 Errors集合和Error对象5.8.1 Errors集合的属性

49、和方法5.8.2 Error对象的属性715.1 数据库存取组件概述Microsoft设计了ADO的机制以供程序开发人员以简单方式来存取OLE DB,透过Visual Basic(VB)或是Active Server Page(ASP)等COM组件就可以通过ADO来存取数据。ADO经过了数年的革新,进步到了ADO 2.6的版本,2.6版新增了许多的功能,其中最重要的就是对于XML的支持。725.2 数据源DSN的设置方法在创建数据库脚本之前,必须提供一条使ADO定位、标识和与数据库通讯的途径。数据库驱动程序使用Data Source Name (DSN)定位和标识特定的ODBC兼容数据库,将信

50、息从Web应用程序传递给数据库。典型情况下,DSN包含数据库配置、用户安全性和定位信息,且可以获取Windows NT注册表项中或文本文件的表格。通过ODBC,您可以选择希望创建的DSN的类型:(1)用户DSN;(2)系统DSN;(3)文件DSN。用户和系统DSN存储在Windows 注册表中。系统DSN允许所有的用户登录到特定的服务器上去访问数据库,而用户DSN使用适当的安全身份证明限制数据库到特定用户的连接。文件DSN用于从文本文件中获取表格,提供了对多用户的访问,并且通过复制DSN文件,可以轻易地从一个服务器转移到另一个服务器。735.3 结构化查询语言SQL结构化查询语言(Struct

51、ured Query Language,SQL),是一种关系数据库的标准语言,它包括查询、定义、操作和控制4个部分,是一种功能集权、应用广泛的数据库语言。当前,几乎所有的关系数据库软件都支持SQL,软件厂商都对SQL的基本命令集进行了扩充。SQL使用灵活、学习方便、语义直观。1986年美国国家标准协会公布第一个SQL标准(SQL86),目前最新的标准是于1999年制定的SQL3。SQL的特点主要有:SQL语言是一种关系数据库语言,提供数据的定义、查询、更新和控制等功能。功能强大、可以完成多种数据库操作SQL语言不是一个应用程序开发语言,它只提供对数据库的操作功能,可作为交互式语言独立使用,也可

52、作为子语言嵌入宿主语言中使用,成为应用开发语言的一部分。有利于各种数据库之间交换数据;有利于程序的移植;有益于实现程序和数据建的独立性;有利于实施标准化。书写简单、易学易用。745.3 结构化查询语言SQL(续上)SQL语言通常分为如下四类:(1)数据定义语言(DDL)创建、修改或删除数据库中的各种对象,包括表、视图、索引等,如表5-1所示。(2)查询语言(QL)按照指定的组合、条件表达式或排序检索已存在的数据库中的数据,但并不改变数据库中的数据。语句为:SELECTFROMWHERE操作对象操作方式创建修改删除表CREATE TABLEALTER TABLEDROP TABLE视图CREAT

53、E VIEWALTER VIEWDROP VIEW索引CREATE INDEXDROP INDEX触发器CREATE TRIGGERALTER TRIGGERDROP TRIGGER存储过程CREATE PROCEDUREALTER PROCEDUREDROP PROCEDURE755.3 结构化查询语言SQL(续上)(3)数据操纵语言(DML)对已经存在的数据库进行记录的插入、删除、修改等操作。主要语句有:INSERTUPDATEDELETE(4)数据控制语言(DCL)用来授予或收回访问数据库的某种特权;控制数据操纵事务的发生时间及效果;对数据库进行监视。主要语句有:GRANTREVOKEB

54、EGIN TRANSACTION、COMMIT TRANSACTIONROLLBACK TRANSACTION765.3.1 查询语句Select格式:下面对SELECT命令进行一些说明:命令的含义是从FROM字句指定的基本表或视图中,根据WHERE字句的条件表达式查找出满足条件的记录,按照SELECT字句指定的目标列表达式,选出元组中的属性值形成结果集。如果有GROUP BY子句,则将结果按照其后指定的列名的值进行分组,该属性列值相等的元组为一个组;如果GROUP BY子句带有短语HAVING,则只有满足短语指定田间的分组才会输出。如果有ORDER BY子句,则结果表要按照其后指定的列的值来

55、进行升序(ASC)或降序(DESC)排列。目标列表达式可以是“列名1,列名2,”的形式;如果FROM字句指定了多个表,则列名应是“表名.列名”的形式;目标列表达式也可以是“列名1+列名2”、“列名1-列名2”、“列名1*列名2”、“列名1/列名2”等形式;目标列表达式还可以使用SQL提供的库函数形成表达式,常用的函数如下:COUNT(*):统计记录条数COUNT(列名):统计一个列值个数SUM(列名):累计数值型列的综合AVG(列名):对某一数值型列求均值MAX(列名):计算列的最大值MIN(列名):计算列的最小值SELECT ALL | DISTINCT TOP n PERCENT WITH

56、 TIES ,FROM ,WHERE GROUP BY ,HAVING ORDER BY , ASC|DESC775.3.2 插入语句Insert Into向表中插入数据命令是通过向具体的记录插入常量数据得到的。插入记录的简单语句格式为如下:INSERT INTO (,) VALUES(, )【例7-12】向学生表中插入一条记录。insert into 学生表 values(20100113,王妍,女,1990-07-12,船舶,92)785.3.3 更新语句Update更新数据的语句格式一般如下:UPDATE SET =,=, WHERE 【例】将学生于明的成绩改为78。UPDATE 学生表

57、 SET 成绩78 WHERE 姓名=于明795.3.4 删除语句Delete删除命令比较简单,删除是对记录操作,不能删除记录的部分属性。一次可以删除一条或若干条,甚至将整个表的所有记录删除,只保留表的结构定义。其基本命令格式如下:DELETE FROM WHERE 【例7】删除学生表中学号为20102321的学生。DELETE FROM 学生表 WHERE 学号 = 20022321805.3.5 创建表语句Create table创建表的命令格式如下:CREATE TABLE ( , , )【例】创建学生表。CREATE TABLE 学生表 (学号 char(10),姓名 varchar(

58、50),性别 char(2),出生日期 datetime,学院 varchar(50),成绩 int)815.3.6 删除表语句Drop table删除表格命令将从数据库中彻底删除表的定义和表中的所有记录,所以在使用前仔细考虑,删除表格的命令格式如下:DROP TABLE 825.4 ADO概述ADO(ActiveX Data Objects)是由微软公司推出的以ActiveX技术为基础的数据存取方法。ADO的主要特点是使用更加容易,访问速度更快,而对磁盘和存储容量的要求小;在利用Ado开发数据库过程中,会用到大量的ADOVB常量,微软提供了常量文件ADOVB.INC,只要在ASP文件的开发包

59、含该文件就可以使用已定义的常量。835.5.1 建立Connection对象在使用对象之前首先必须创建它。创建一个connection对象和真正打开connection是两个不同的概念。我们可以这样来理解,创建一个connection对象相当于定义了一个可以用于与数据源的变量,但是,这时候,还没有真正的数据源建立连接。只有在打开connection以后,在真正的与数据源建立了连接,才可以对数据源进行查询、添加、删除操作。创建connection对象主要有两种方法:方法一:调用Server对象的CreateObject方法Set objcn = Server.CreateObject(adodb

60、.connection)方法二:利用标记,来创建connection对象RUNAT=server,表示在服务器端创建对象,如果没有该属性,则在客户端执行,所以,在用这种方法创建对象时,不能忽略该属性。845.5.2 Connection对象的属性和方法1、Connection对象的属性Connection对象的属性控制高层的数据处理,如ADO如何与数据源提供者相连接以及事务如何被执行等。Attributes属性CommandTimeout属性ConnectionString属性ConnectionTimeout属性DefaultDatabase属性Mode属性Provider属性Version

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论