Presentation is loading. Please wait.

Presentation is loading. Please wait.

ASP动态网页制作教程 第6章 ASP内置对象.

Similar presentations


Presentation on theme: "ASP动态网页制作教程 第6章 ASP内置对象."— Presentation transcript:

1 ASP动态网页制作教程 第6章 ASP内置对象

2 本章介绍ASP的内置对象,主要内容包括Request对象、Response对象、Application对象、Session对象、Server对象和ObjectContext对象。通过本章的学习,读者应了解以上每个对象的主要用途,并掌握每个对象在程序中的相关应用。读者还需进一步理解ASP如何通过调用其内置对象来实现基本操作。

3 主要内容 ASP内置对象概述 Request请求对象 Response响应对象 Application应用程序对象 Session会话对象
6.1 Request请求对象 6.2 Response响应对象 6.3 Application应用程序对象 6.4 Session会话对象 6.5

4 Server服务对象 ObjectContext事务处理对象 小 结 上机指导
6.6 ObjectContext事务处理对象 6.7 小 结 6.8 上机指导 6.9

5 6.1 ASP内置对象概述 为了实现网站的常见功能,ASP提供了内置对象。内置对象的特点是:不需要事先声明或者创建一个实例,可以直接使用。常见的内置对象及其功能如下。

6 6.2 Request请求对象 在客户端/服务器结构中,当客户端Web页面向网站服务器端传递信息时,ASP通过Request对象能够获取客户端提交的全部信息。

7 信息包括客户端用户的HTTP变量、在网站服务器端存放的客户端浏览器的Cookie数据、附于URL之后的字符串信息、页面中表单传送的数据以及客户端证书等。

8 Request对象的语法如下: Request[.collection | property | method](variable)

9 表6-1 Request对象的成员 成 员 描 述 Form数据集合 读取HTML表单域控件的值,即读取客户端
成 员 描 述 Form数据集合 读取HTML表单域控件的值,即读取客户端 浏览器上以Post方法提交的表单数据。 QueryString数据集合 读取附于URL地址后的字符串的值,在页面 的参数传递中使用或Get提交的表单数据。 Cookies数据集合 读取存放在客户端浏览器Cookie的内容。 ServerVariables数据集合 读取客户端请求发出的HTTP报头值以及Web 服务器的环境变量值。

10 续表 成 员 描 述 ClientCertificate数据集合 读取客户端的验证字段。 TotalBytes属性
成 员 描 述 ClientCertificate数据集合 读取客户端的验证字段。 TotalBytes属性 返回客户端发出请求的字节数量。 BinaryRead方法 以二进制方式来读取客户端使用post方法所传递的数据,并返回一个变量数组(Variant Array)。

11 获取表单数据 表单是标准HTML文件的一部分,用户可以利用表单中的文本框、复选框、单选按钮、列表框等控件为服务器端的应用提供初始数据,用户通过单击表单中的命令按钮提交输入的数据。

12 在含有ASP动态代码的Web页面中,可以使用Request对象的Form集合收集来自客户端的以表单形式发送到服务器的信息。

13 语法: Request.Form(element)[(index)|.Count] element:指定集合要检索的表单元素的名称。

14 在表单中传递数据的方法有两种:POST方法和GET方法。当使用POST方法将HTML表单提交给服务器时,表单元素可以作为Form集合的成员来检索,即使用Request对象的Form集合来获得表单中传递的数据,传递大量数据一般使用POST方法;使用GET方法传递数据时,通过Request对象的QueryString集合来获得数据。

15 【例6-1】通过Form集合获取表单数据

16 图6-1 输入数据

17 图6-2 读取数据

18 Request对象 Form集合 QueryString集合 ServerVariables集合 TotalBytes属性
BinaryRead方法

19 Request.Form举例 制作网上考试系统 根据输入的行和列动态生成表格 文章发布系统

20 Request对象中有5个集合可以用来完成客户端对ASP服务器的请求的响应。例如,要在Request对象的Form中取得名为“姓名”的信息,可以使用下述赋值命令:
name=Request.Form("姓名") 也可以不指定集合名(Form),直接使用命令: name=Request("姓名") 程序会以QueryString、Form、Cookies和ServerVariables的顺序搜索所有集合,当发现一个匹配的变量时,就认定它是要引用的成员。当然,编程实践中,为避免不同集合中同名变量引用的二义性,最好显式地指定集合。

21 6.2.2 Request.QueryString 通过Request对象的QueryString集合可以读取地址栏后字符串参数或读取Get方式提交的表单。 1. 利用Querystring集合读取表单的内容 2. 利用Querystring集合读取HTTP查询字符串中的参数

22 QueryString数据集合可以利用QueryString环境变量来检索HTTP查询字符串中变量的值。

23 读取表单数据的对应关系 表单提交方式 读 取 方 式 Method = Post Request.Form() Method = Get
Request.QueryString()

24 HTTP查询字符串中的变量可以直接定义在超链接的URL地址中“?”字符之后,如http://www. mrbccd. com
HTTP查询字符串中的变量可以直接定义在超链接的URL地址中“?”字符之后,如

25 语法: Request.QueryString(variable)[(index)|.count]

26 1.通过GET方式传递的表单数据 与Form数据集合相似,QueryString数据集合可以取得在表单中通过GET方式传递的数据。

27 使用GET方法在Web页面间传递参数时,是通过HTTP的附加参数来进行传递的。通过浏览器的地址栏可以得到传递的参数。

28 【例6-3】获取以GET方式传递的表单数据。

29 图6-5 以GET方式传递数据

30 图6-6 读取数据

31 2.使用超链接传递的参数 在程序中,可以直接利用HTML的超链接标记<A>传递参数。传递的参数写在“?”符号的后面,如果有多个参数则使用“&”作为分隔符。使用Request对象的QueryString数据集合可以取得所传递的参数值。

32 【例6-4】使用超链接传递参数。

33 图6-7 建立超链接

34 图6-8 读取参数

35 Request.QueryString的应用
如果有时候要把多个ASP网页的处理程序写在一个页面,可以用Request.QueryString集合进行区分

36 获得服务器端环境变量 通过Request对象的ServerVariables数据集合可以取得服务器端的环境变量信息。

37 这些信息包括:发出请求的浏览器信息、构成请求的HTTP方法、用户登录Windows NT的账号、客户端的IP地址等。服务器端环境变量对ASP程序有很大帮助,使程序能够根据不同情况进行判断,提高了程序的健壮性。

38 服务器环境变量是只读变量,只能查阅,不能设置。
语法: Request.ServerVariables(server_environment_variable) server_environment_variable:服务器环境变量。

39 表6-2 服务器环境变量 服务器环境变量 描 述 ALL_HTTP 传送HTTP HEADER头部 ALL_RAW
表6-2 服务器环境变量 服务器环境变量 描 述 ALL_HTTP 传送HTTP HEADER头部 ALL_RAW 取得HTTP HEADER的源程序 ALL_MD_PATH ISAPI DLL应用程序的METBASE路径 ALL_PHYSICAL_PATH METBASE路径对应的实际路径 AUTH_PASSWORD 使用基本认证时,Client端输入的认证密码 AUTH_TYPE Client端的认证方式 AUTH_USER 认证时使用的用户名 CERT_COOKIE Client端证书ID

40 续表 服务器环境变量 描 述 CERT_FLAGS Client端证书是否存在,存在则返回为1 CERT_ISSUWE
描 述 CERT_FLAGS Client端证书是否存在,存在则返回为1 CERT_ISSUWE Client端证书发行者信息 CERT_KEYSIZE 连接SSL时,Key的Bit数 CERT_SECRETKEYSIZE Server证书的Bit数 CERT_SERIALNUMBER Client端证书的序列号 CERT_SERVER_ISSUER Server证书发行者信息 CERT_SERVER_SUBJECT Server证书内容 CERT_SUBJECT Client证书内容

41 续表 服务器环境变量 描 述 CONTENT_LENGTH Client送出内容的长度 CONTENT_TYPE Client送出内容的类型
描 述 CONTENT_LENGTH Client送出内容的长度 CONTENT_TYPE Client送出内容的类型 GATEWAY_INTERFACE Server使用CGI规格版本 HTTP_<headname> 保存在头部的其他信息 HTTPS 使用SSL提出要求时,该值为ON,否则为OFF HTTPS_KEYSIZE 使用SSL连接时Key的Bit数 HTTPS_SECRETKEYSIZE Server证书密码的Bit数 HTTPS_SERVER_ISSUER Server证书发行者信息 HTTPS_SERVER_SUBJECT Server证书内容

42 续表 服务器环境变量 描 述 INSTANCE_ID 取得所属(metabase中)Web服务进程的ID值
描 述 INSTANCE_ID 取得所属(metabase中)Web服务进程的ID值 INSTANCE_META_PATH 取得要求的IIS服务进程的META BASE PATH LOCAL_ADDR 取得要求的SERVER的地址 LOGON_USER 用户可以登录的账号 PATH_INFO 由Client端提供的路径信息 PATH_TRANSLATED 将PATH_INFO变换为物理路径信息 QUERY_STRING QUERY字符串的相关信息 REMOTE_ADDR 远端主机的IP地址 REMOTE_HOST 远端主机的计算机名

43 续表 服务器环境变量 描 述 REMOTE_USER 在Server认证处理前从客户端传送的用户名 REQUEST_METHOD
描 述 REMOTE_USER 在Server认证处理前从客户端传送的用户名 REQUEST_METHOD Client端表单传送数据的方法(POST,GET) SCRIPT_NAME 正在运行的脚本的名称 SERVER_NAME 运行脚本的服务器的主机名、DNS或IP地址 SERVER_PORT 取得Server端口号 SERVER_PORT_SECURE Server端口是否安全,1表示安全,0表示不安全 SERVER_PROTOCOL 取得通信协议的名称及编号 SERVER_SOFTWARE 取得Server端软件的名称及版本 URL 取得URL信息

44 【例6-5】获得服务器端环境变量。

45 图6-9 获得服务器端环境变量

46 以二进制码方式读取数据 结合使用Request对象的TotalBytes属性和BinaryRead方法,可以以二进制码方式读取使用POST方式发送的表单数据。

47 (1)Request对象的TotalBytes属性
语法: Counter=Request.TotalBytes

48 (2)Request对象的BinaryRead方法
Request对象提供一个BinaryRead方法,用于以二进制码方式读取客户端使用POST方式所传递的数据。 语法: Variant数组=Request.BinaryRead(Count)

49 Request.BinaryRead方法举例
上传图像

50 6.3 Response响应对象 Response对象是ASP内置对象中直接对客户端发送数据的对象。Request请求对象与Response响应对象构成了客户请求/服务器响应的模式。Request对象用于发送客户端提交的数据。Response对象用于动态响应客户端请求,并将动态生成的响应结果返回给客户端浏览器。

51 通过Response对象可以将客户端重定向到一个指定的页面中,可以设置客户端的Cookie值等。
Response.collection | property | method

52 表6-3 Response对象的成员 成 员 描 述 Cookies数据集合 设置客户端浏览器的Cookie值 Buffer属性
成 员 描 述 Cookies数据集合 设置客户端浏览器的Cookie值 Buffer属性 表明输出页是否被缓冲 CacheControl属性 决定代理服务器是否能缓存ASP生成的输出页 Status属性 服务器返回的状态行的值 ContentType属性 指定响应的HTTP内容类型 Charset属性 将字符集的名称添加到内容类型标题中 Expires属性 在浏览器中缓存页面超时前,可以指定缓存时 ExpiresAbsolute属性 指定浏览器上缓存页面超时的日期和时间

53 续表 成 员 描 述 IsClientConnected属性 表明客户端是否与服务器断开 PICS属性
成 员 描 述 IsClientConnected属性 表明客户端是否与服务器断开 PICS属性 将PICS标记的值添加到响应的标题的PICS标 记字段中 Write方法 直接向客户端浏览器输出数据 End方法 停止处理.asp文件并返回当前的结果 Redirect方法 重定向当前页面,连接另外一个URL

54 续表 成 员 描 述 Clear方法 清除服务器中缓存的HTML信息 Flush方法 立即输出缓冲区的内容 BinaryWrite方法
成 员 描 述 Clear方法 清除服务器中缓存的HTML信息 Flush方法 立即输出缓冲区的内容 BinaryWrite方法 按照字节格式向客户端浏览器输出数据,不进行 任何字符集的转换 AddHeader方法 设置HTML标题 AppendToLo g方法 在Web服务器的日志文件中记录日志

55 向客户端发送数据 使用Response对象的Write方法可以将指定的字符串信息输出到客户端。Write方法是Response对象常用的响应方法。 语法: Response.Write variant

56 【例6-6】输出数据。

57 图6-10 输出数据

58 利用缓冲输出数据 Web服务器响应客户端浏览器的请求时,是以信息流的方式将响应的数据发送给客户浏览器,发送过程是先返回响应头,再返回正式的页面。在处理ASP页面时,信息流的发送方式则是生成一段页面就立即发出一段信息流返回给浏览器。

59 ASP提供了另一种发送数据的方式,即利用缓存输出。缓存输出是指Web服务器生成ASP页面时,等ASP页面全部处理完之后,再返回用户请求。

60 1.使用缓冲输出 (1)Buffer属性 在默认情况下,缓冲是关闭的。通过设置Response对象的Buffer属性值为“True”,可以打开缓冲。

61 缓冲启用后凡是输出到客户端的信息都暂时存入缓冲区,直到整个ASP执行结束后或者调用了Response对象的Flush或End方法后,才将响应发送给客户端的浏览器。

62 语法: Response.Buffer=True/False

63 (2)Flush方法 Response对象的Flush方法用于将缓冲区内容立即发送给客户端浏览器。在使用这一方法时, Response对象的Buffer属性应设置为“True”,否则将导致运行时错误。

64 语法: Response.Flush

65 (3)Clear方法 Response对象的Clear方法用于清除任何缓冲的HTML输出,即清除缓冲区。只有当Buffer属性设置为“True”时,即缓冲区有内容时,才能执行Clear方法,否则将导致运行错误。

66 语法: Response.Clear

67 【例6-7】使用缓冲输出。

68 图6-11 使用缓冲输出

69 2.设置缓冲的有效期限 保存在缓存中的内容是有一定期限的。Response对象提供了一些属性来设置页面是否支持缓存、缓存内容何时过期等。

70 (1)CacheControl属性 应用程序可以通过代理服务器将页面发送给客户。代理服务器代表客户端浏览器向Web服务器请求页面。代理服务器高速缓存HTML页,这样对同一页的重复请求会迅速高效地返回到浏览器。

71 在默认情况下,ASP指示代理服务器不要高速缓存ASP页本身。通过Response对象的CacheControl属性设置Cache-Control头字段,可以允许代理服务器高速缓存特定的页面。

72 语法: Request.Cachecontrol[=Cache_Control_Header]

73 (2)Expires属性 Response对象的Expires属性用于指定在客户端浏览器上缓冲存储的页面距过期还有多少时间。 语法:
Response.Expires [=number]

74 (3)ExpiresAbsolute属性 Response对象的ExpiresAbsolute属性用于指定缓存于客户端浏览器中的页面到期的日期和时间。 语法: Response.ExpiresAbsolute=[date] [time]

75 【例6-8】设置页面的到期时间。

76 图6-12 设置ExpiresAbsolute属性

77 图6-13 网页到期

78 重定向网页 网页重定向是指从一个网页跳转到其他页面。应用Response对象的Redirect方法可以将客户端浏览器重定向到另一个Web页面。

79 如果需要在当前网页转移到一个新的URL,而不用经过用户去单击超链接或者搜索URL,此时可以使用该方法使用户浏览器直接重定向到新的URL。
语法: Response.Redirect URL

80 【例6-9】网页重定向。

81 图6-14 网页重定向

82 向客户端输出二进制数据 调用Response对象的BinaryWrite方法可以不进行任何字符集转换,而直接向客户浏览器发送二进制数据。 语法: Response.BinaryWrite Variable

83 【例6-10】输出二进制数据。

84 图6-15 建立表单

85 图6-16 输出二进制数据

86 在网页中使用Cookie Cookie实际上是一个字符串或者一个标志。

87 当一个包含Cookie的页面被用户浏览器读取时,浏览器就会为这个站点自动建立一个Cookie文件,将此文件保存于系统目录中的Cookies文件夹中,并且会把接受的数据写进这个文件,这样一个Cookie就被存入到本地硬盘中,当需要时该网站可以从用户的本地硬盘中读取这些Cookie值。Cookie文件中的变量称为Cookie变量。

88 Cookie在指定的生命周期内都将有效,所以Web设计人员可以使用Cookie在各个不同的ASP页面间传递变量。

89 (1)写入Cookie 使用Response对象的Cookies数据集合可以在客户端写入Cookie。 语法:
Response.Cookies(cookiesname)[(key)|.attribute]=value

90 (2)读取Cookie 使用Request对象的Cookie数据集合来读取Cookie的值。 语法:
Request.Cookies(cookiesname)[(key)|.attribute]

91 【例6-11】在网页中使用Cookie。

92 图6-17 写入Cookie

93 图6-18 读取Cookie

94 停止输出 调用Response对象的End方法可以使Web服务器上的ASP处理程序停止处理ASP脚本,并返回当前结果,此语句后面的内容将不被处理。 语法: Response.End

95 6.4 Application应用程序对象 ASP程序是在Web服务器上执行的,在Web站点中创建一个基于ASP的应用程序之后,可以通过Application对象在ASP应用程序的所有用户之间共享信息。

96 也就是说,Application对象中包含的数据可以在整个Web站点中被所有用户使用,并且可以在网站运行期间持久保存数据。应用Application对象可以完成统计网站的在线人数、创建多用户游戏以及多用户聊天室等功能。

97 语法: Application.collection | method

98 表6-5 Application对象的成员 成 员 描 述 Contents集合 在Application层次的所有可用的变量集合,
成 员 描 述 Contents集合 在Application层次的所有可用的变量集合, 不包含使用<Object>标记建立的变量 StaticObjects集合 在Global.asa文件中通过使用<Object>标记 建立的Application层次的变量集合 Contents.Remove方法 从Application对象的Contents集合中删除一 个项目 Contents.RemoveAll方法 从Application对象的Contents集合中删除所 有项目

99 续表 成 员 描 述 Lock方法 锁定Application变量,其他用户就不能同 时修改同一Application变量 Unlock方法
成 员 描 述 Lock方法 锁定Application变量,其他用户就不能同 时修改同一Application变量 Unlock方法 解除Application变量的锁定状态 Application_OnStart事件 当应用程序的第一个页面被请求时,触发这 个事件 Application_OnEnd事件 当Web服务器关闭时这个事件中的代码被触

100 访问Application应用级变量 绝大部分的Application应用级变量都存放于Contents集合中。Contents数据集合包含所有通过脚本命令添加到应用程序中的项目,可以使用Contents集合获取给定的应用程序作用域的项目列表或者指定一个特殊项目为操作对象。

101 当创建一个新的Application应用级变量时,其实就是在Contents集合中添加了一项。
语法: Application.Contents( key )

102 【例6-12】访问Application应用级变量。

103 图6-19 访问Application应用级变量

104 锁定和解锁Application对象 Application对象提供了Lock方法和Unlock方法分别用于锁定Application对象和解除对Application对象的锁定。

105 (1)Lock方法 Lock方法用于锁定Application对象,禁止非锁定用户修改Application对象集合中的变量值。 语法:
Application.Lock

106 (2)Unlock方法 Unlock方法用于解除Application对象的锁定,允许其他用户修改Application对象集合中的变量值。
语法: Application.Unlock

107 制作网站计数器 Application对象的Application_OnStart事件和Application_OnEnd事件以及Session对象的Session_OnStart事件和Session_OnEnd事件都是定义在Global.asa文件中的。

108 Global.asa文件是用来存放执行任何ASP应用程序期间的Application、Session事件程序,当Application或者Session对象被第一次调用或者结束时,就会执行该Global.asa文件内的对应程序。

109 一个应用程序只能对应一个Global.asa文件,该文件只有存放在网站的根目录下才能正常运行。

110 Global.asa文件的基本结构如下。 <Script Language="VBScript" Runat="Server"> Sub Application_OnStart End Sub Sub Session_OnStart

111 End Sub Sub Session_OnEnd Sub Application_OnEnd </Script>

112 【例6-13】制作网站计数器。

113 图6-20 制作网站计数器

114 6.5 Session会话对象 ASP提供了Session对象,Session的中文是“会话”的意思,使用Session对象可以存储用户个人会话所需的信息。

115 当用户在Web站点中不同页面切换时,存储在Session对象中的变量不会清除。使用Session对象变量可以实现用户信息在多个Web页面间共享,还可以用来跟踪浏览者的访问路径,这样对了解页面的访问情况以及网站的定位都有帮助。

116 语法: Session.collection|property|method

117 表6-6 Session对象的成员 成 员 描 述 Contents集合 包含通过脚本命令添加到应用程序中的变量、对 象
成 员 描 述 Contents集合 包含通过脚本命令添加到应用程序中的变量、对 StaticObjects集合 包含由<Object>标记添加到会话中的对象 SessionID属性 系统用来存放并且识别该连接期间所使用的唯一 识别码,它的数据类型是长整数并且是只读的 Timeout属性 应用程序会话状态的超时时限,以分钟为单位

118 续表 成 员 描 述 CodePage属性 将用于符号映射的代码页 LCID属性 现场标识 Abandon 方法
成 员 描 述 CodePage属性 将用于符号映射的代码页 LCID属性 现场标识 Abandon 方法 释放Session对象占用的资源 Session_OnStart事件 尚未建立会话的用户请求访问应用程序的页面 时,触发该事件 Session_OnEnd事件 会话超时或者会话被放弃时,触发该事件

119 访问Session会话级变量 Session对象的Contents数据集合包含通过Server对象的CreateObject方法创建的对象和通过Session对象声明建立的变量,不包含以<Object>标记定义的对象。

120 Session对象存在期间,存储在Session对象的Contents数据集合中的信息是有效的。
语法: Session.Contents(key)

121 【例6-14】访问Session会话级变量。

122 图6-21 访问Session会话级变量

123 返回当前会话的唯一标志符 在创建会话时,服务器会为每一个会话生成一个单独的标识,使用Session对象的SessionID属性可以返回当前会话的唯一标志符,即返回用户的会话标识。 语法: Session.SessionID

124 限定会话结束时间 一个Session对象被创建后,是有其生存期的。应用Session对象的TimeOut属性可以定义应用程序会话状态的超时时限,以分钟为单位。 语法: Session.TimeOut[=nMinutes]

125 释放Session 根据实际需要,可以在满足或者规定的条件下释放Session对象所占用的资源。

126 Session对象只提供了Abandon方法,该方法将删除所有存储在Session对象中的数据并释放其所占的资源。
语法: Session.Abandon

127 【例6-15】释放Session对象。

128 图6-22 调用Abandon方法

129 图6-23 显示Session变量及用户的SessionID

130 6.6 Server服务对象 ASP的Server对象提供了对服务器上的属性和方法的访问,从而用来获取Web服务器的特性和设置。

131 使用Server对象可以创建各种服务器组件对象实例,程序调用创建对象的属性、方法可以实现访问数据库、对文件进行输入/输出操作以及在Web页上自动轮换显示广告图像等功能。使用Server对象还可以完成调用ASP脚本、

132 处理HTML和URL编码以及获取服务器对象的路径信息等。
语法: Server.property | method

133 表6-7 Server对象的成员 成 员 描 述 ScriptTimeOut属性 设置ASP脚本执行的超时时间 CreateObject方法
成 员 描 述 ScriptTimeOut属性 设置ASP脚本执行的超时时间 CreateObject方法 创建服务器组件的实例 MapPath方法 将指定的虚拟路径(无论是当前服务器上的绝对路 径,还是当前页的相对路径)映射为物理路径 HTMLEncode方法 将HTML编码应用到指定的字符串 URLEncode方法 将URL编码规则(包括转义字符)应用到字符串

134 续表 成 员 描 述 Execute方法 停止当前页面的执行,把控制转到指定路径的网页,当 前环境也被传递到新的网页。在该页面执行完成后将控
成 员 描 述 Execute方法 停止当前页面的执行,把控制转到指定路径的网页,当 前环境也被传递到新的网页。在该页面执行完成后将控 制传递回原来的页面 Transfer方法 与Execute方法类似,不同的是,当新页面执行完成 时,执行过程结束而不是返回原来的页面继续执行

135 设置ASP脚本执行时间 Server对象只提供一个ScriptTimeout属性,用于设置一个ASP脚本执行的超时时间,即脚本所允许的最长执行时间。

136 如果在指定的时间内脚本没有执行完毕,系统将停止其执行,并且显示超时错误。应用该属性可以防止出现一些进入死循环的程序导致页面服务器过载的问题。
语法: Server.ScriptTimeout=NumSeconds

137 【例6-16】设置ASP脚本执行时间。

138 图6-24 设置ASP脚本执行时间

139 创建服务器组件实例 调用Server对象的CreateObject方法可以创建服务器组件的实例。

140 CreateObject方法可以用来创建已经注册到服务器上的ActiveX组件实例,这样可以通过使用ActiveX服务器组件扩展ASP的功能,实现一些仅依赖脚本语言所无法实现的功能。

141 建立在组件对象模型(Component Object Model,COM)模型上的对象,ASP有标准的函数调用接口,只要在操作系统上登记注册了组件程序,COM就会在系统注册表里维护这些资源,以供程序员调用。 语法: Server.CreateObject(progID)

142 6.6.3 获取文件的真实物理路径 Server对象的MapPath方法用于返回虚拟目录在Web服务器上的真实物理路径。 语法:
获取文件的真实物理路径 Server对象的MapPath方法用于返回虚拟目录在Web服务器上的真实物理路径。 语法: Server.MapPath(string)

143 【例6-17】获取文件的真实物理路径。

144 图6-25 获取文件的真实物理路径

145 输出HTML源代码 通常情况下,HTML标记会被浏览器解释执行,不会显示在浏览器上。如果想将HTML标记如实地显示在浏览器上,可以调用Server对象的HTMLEncode方法。

146 HTMLEncode方法用于将HTML标记字符串进行编码。
语法: Server.HTMLEncode(string)

147 【例6-18】输出HTML源代码。

148 图6-26 输出HTML源代码

149 6.7 ObjectContext事务处理对象 ASP中提供ObjectContext对象控制ASP的事务处理。事务在服务器端运行,主要用于对数据库提供可靠的操作。

150 当对数据库进行关联更改或者是同时更新多个数据库时,需要确定所有更改是否都准确运行,如果其中任何一项更改失败,数据库中的数据将恢复到操作执行前的状态,这样就不会破坏数据完整性,只有在所有更改都正确执行时,数据的更新才有效。

151 ASP中的事务处理程序是以MTS(Microsoft Transaction Server)事件处理系统为基础的,MTS是以组件为主的事物处理系统,用于开发、配置和管理Internet、Intranet服务器应用程序。MTS不能对文件系统或者其他非事务性资源的更改进行恢复操作。

152 ObjectContext对象的使用语法如下:
ObjectContext.method

153 ObjectContext对象是通过和事务服务器通信来对事务进行控制的,所以在ASP中使用ObjectContext对象之前必须声明该页包含事务。

154 在ASP中使用@TRANSACTION关键字来标识当前运行页面要以MTS事务服务器来处理,@TRANSACTION指令必须位于ASP文件中的第一行,否则会产生错误。
语法如下: %>

155 表6-8 @TRANSACTION关键字取值 取 值 描 述 Required 开始一个新的事务或者加入一个已经存在的事务处理
取 值 描 述 Required 开始一个新的事务或者加入一个已经存在的事务处理 Requires_New 每次都开始一个新的事务 Supported 加入到一个现有的事务处理,但不开始一个新的事务 Not_Supported 既不加入也不开始一个新的事务

156 表6-9 ObjectContext对象的成员
成 员 描 述 SetAbort方法 终止当前网页所启动的事务处理,将事务先 前所做的处理撤销到初始状态 SetComplete方法 成功提交事务,完成事务处理 OnTrandactionAbort事件 事务终止时触发的事件 OnTransactionCommit事件 事务成功提交时触发的事件

157 终止事务的处理 ObjectContext对象提供了SetAbort方法和OnTrandactionAbort事件进行终止事务的处理。

158 (1)SetAbort方法 SetAbort方法将终止当前网页所启动的事务处理,而且将事务先前所做的处理撤消到初始状态,也称为事务“回滚”。
语法: ObjectContext.SetAbort

159 (2)OnTrandactionAbort事件
脚本本身不能判断事务处理是成功还是失败,可以编写事务终止或者成功提交时调用的事件显式说明事务处理的情况。OnTransactionAbort事件是当事务处理失败时引发的。

160 语法: Sub OnTransactionAbort() …处理程序 End Sub

161 完成事务的处理 ObjectContext对象提供了SetComplete方法和OnTransactionCommit事件对事务成功完成进行处理。

162 (1)SetComplete方法 SetComplet方法将成功地完成事务处理,也称为事务“提交”。 语法:
ObjectContext.SetComplete

163 调用SetComplet方法将忽略脚本中以前调用过的任何SetAbort方法。

164 (2)OnTransactionCommit事件

165 语法: Sub OnTransactionCommit() …处理程序 End Sub OnTransactionCommit事件在一个已处理的脚本事务提交后发生。

166 【例6-19】应用ObjectContext对象进行事务处理。

167 图6-27 应用ObjectContext对象进行事务处理

168 小 结 本章主要介绍了6个ASP的内置对象及其应用,包括Reuqest对象获取用户提交的信息、Response对象返回服务器响应的数据、Application对象保存整个站点的共享信息、Session对象保存单个用户信息、ObjectContext对象处理ASP事务等。读者应能熟练使用各对象来实现相应的功能。

169 上 机 指 导 6-1 设计一个程序,用于显示获取到的表单数据。
6-1 设计一个程序,用于显示获取到的表单数据。 6-2 编写程序,判断用户的IP地址是否为禁止访问的IP地址,如果是则给出提示信息并终止用户的访问,如果不是则允许用户继续访问。

170 6-3 使用Session对象判断用户输入的用户名和密码是否正确。
6-4 应用Application对象设计一个网站计数器。


Download ppt "ASP动态网页制作教程 第6章 ASP内置对象."

Similar presentations


Ads by Google