本章主要学习 ASP的高级应用,实现真正的网页交互功能,通过本章学习,
应该掌握以下内容:
1,ASP基础
2,ASP的内置对象
3,各个内置对象的属性和方法第 11章 示例网页利用 ASP
实现交互功能
11.1 ASP基础
11.1.1 ASP的特点和功能
1,ASP的特点
使用 VBScript,JavaScript等简单易懂的脚本语言,结合 HTML代码,即可快速地完成网站的应用程序 。
无须编译,可直接解释执行 。
使用普通的文本编辑器,即可进行页面的编辑与设计 。
独立于浏览器,用户端只要使用可执行 HTML码的浏览器,即可浏览 ASP所设计的网页内容 。
ASP能与任何 Activex Scripting语言相容 。
源程序不会外漏,ASP脚本是在服务器上执行,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性 。
面向对象,具有无限可扩充性 。
2,ASP的功能从应用角度看,ASP具有如下功能:
处理由浏览器传送到服务器的表单输入 。
访问和编辑服务器的数据库表 。
读写服务器的文件,实现访客计数器等功能 。
提供广告轮播器,取得浏览器信息,URL表管理等内置功能 。
可以实现在多个主页间共享信息 。
11.1.2 ASP对象
ASP提供了可在脚本中使用的对象 。 这些对象可分为内置组件以及外挂组件 。
1,内置组件内置组件是指组件本身内置于 ASP中,使用时不需要设置即可运行 。 最常用的包括 Application,Session、
Response,Request及 Server5种 。
2.外挂组件在存取数据库时,最常使用 ADO( ActiveX Data
Object) 的技术和 ASP结合,达到存取数据库的功能 。
这样,在网页上不但可以显示数据库的内容,还可以运行 SQL语句,让用户可以在网页上对数据进行查询,删除,和新增等等操作 。
ADO 主要的 3个对象为 Connection,Recordset 及
Command。
11.2 Request对象
Request对象通常包括了用户端的相关信息,如浏览器的种类,表头信息,表单参数及 cookies等 。
Request对象的语法描述如下:
Request[.collection | property | method]( variable)
1,Request对象属性( Property)
Request对象只提供一个只读的 TotalBytes属性,
它表示从客户端所接收的数据大小 。
语法如下:
字节大小 =Request.TotalBytes
2,Request对象方法 ( Method)
Request对象提供的 BinaryRead方法在实际应用上并不是很常用的,它是以二进制方式来读取客户端使用 POST传递方法所传递的数据 。
语法如下:
Variant数组 =Request.BinaryRead( Cont)
3,QueryString数据集合
QueryString数据集合可以取得 HTTP的附加参数,
这些附加参数通常用,?,来表示连接,
4,Cookies数据集合如果要判断某个用户是否曾经进入本网站,只能使用
Cookies文件 。
语法如下:
Cookies Value=Request,Cookies(CookiesName)[(key)
|.Attribute]
5,Server Variables数据集合
ServerVariables数据集合负责取得 Web服务器端的环境变量,
6,ClientCertificate数据集合
Request对象的 ClientCertificate数据集合可以让用户取得客户端的身份权限数据,
11.3 Response对象
Response对象包含 Web服务器所要响应给用户的各项信息 。
11.3.1 方法
1,Write方法
Response的 Write方法是负责将字符串信息输出至用户端,其语法如下:
Response.Write任何数据类型
2,Redirect方法
Response的 Redirect方法是负责引导客户端的浏览器显示新的网页,其语法如下:
Response.Redirect URL字符串
3,Binary Write方法
Response的 Binary Write方法可以在不作任何转换动作而直接显示二进制数据库给用户,其语法如下:
Response.Binary Write二进制数据
4,Append ToLog
Response的 Append ToLog方法允许用户以附加的方式,将用户信息记录至 Web服务器的记录文件,以便日后追踪与分析,其语法如下:
Response.AppendToLog“所要记录的字符串,
5,AddHeader方法
Response对象的 AddHeader方法可以允许用户自行设置 HTML文件的 HTTP标题 ( header) 。 AddHeader
方法的语法如下:
Response.AddHeader Name,Value
6,Clear方法
Response对象的 Clear方法会清除在缓冲区里的 HTML
输出数据 。
7,Flush 方法
Response对象的 Flush方法会将缓冲区的数据立即送至服务客户端 。
11.3.2 属性
1,CacheControl属性
Response对象的 CacheControl属性值可以为 Public或
Private两种,前者表示 Web服务器会将 ASP的处理结果暂时存放于 Proxy服务器上,后者则不会将数据存放于 Proxy服务器上 。
2,Charset属性
Response对象的 Charset属性可以用来设置 Web服务器响应给客户端的文件字符编码,
3,ContentType属性
Response对象的 ContentType属性可以用来设置
Web服务器响应给客户的 HTTP文件类型,
4,Expires属性
Response对象的 Expires属性可以用来设置网页将保留在浏览器的 Cache中的数据,或是直接从 Web服务器中重新取得数据 。
5,ExpiresAbsolute属性
Response对象的 ExpiresAbsolute属性在功能上于
Expires属性非常相似,其最大的不同在于前者是以日期时间来设置数据被保留在客户端 Cache的时间长短,
而后者是以保留分钟数来设置的 。
6,IsClientConnected属性
Response对象的 IsClientConnected属性是一个只读属性,它可以取得最近一次 Response.Write之后,客户端是否还是与 Web服务器保持连接的信息 。
7,PICS属性
Response对象的 PICS属性可以设置 PICS标签到响应的标头,
8,Status属性
Response对象的 Status属性可以用来设置 Web服务器响应给服务器端浏览器的状态值 。
11.3.3 数据集合
Response对象只有 Cookies一个数据集合,Cookies数据集合允许用户将数据设置在客户端的浏览器中,假如用户所指定名称的 Cookies不存在,系统会自动在客户端的浏览器中建立新的 Cookies,反之,如果指定的
Cookies已经存在客户端的浏览器中,那么系统会自动更新数据 。 其使用语法如下:
Response.Cookies ( CookiesName )
[( Key),Attribute]=Cookies Value
11.4 Server对象
Server对象提供对服务器上的方法和属性的方法,其中大多数方法和属性是作为实用程序的功能服务的 。 语法如下:
Server.property | method
其中 property表示 Server对象的属性,method表示 Server
对象的方法 。
11.4.1 属性
Server的属性只有一个 ScriptTimeout属性,该属性主要是来设置 ASP程序所允许的最长时间,其设置以
“秒”为单位,系统的缺省值为 90秒。
11.4.2 方法
1,CreateObject方法
CreateObject方法允许客户端用户建立一个 ActiveX Server组件实例,当前 ASP页处理完成之后,服务器将自动破坏这些实例对象。
2,MapPath的方法
MapPath方法可以将指定的虚拟路径转换为真实的路径,这里所谓的虚拟路径是指 Web服务器所建立的虚拟路径 。
3,HTMLEncode方法
HTMLEncode方法是对指定的字符串应用 HTML编码。
4,URLEncode方法
URLEncode方法将 URL编码规则,包括转义字符,应用到指定的字符串中。
11.5 Application对象
Application对象是可以让所有用户共同使用的对象 。
通过 Application对象的使用,可以让所有用户存取
Application所设置为同一个名称的变量,让用户可以同时得到某一项信息 。
11.5.1 属性虽然 Application对象没有内置的属性,但可以设置用户定义的属性也可称为集合 。
11.5.2 方法
Application对象有两个方法,它们都是用于处理多个用户对存储在 Application中的数据进行写入的问题 。
( 1 ) Lock 方 法 禁 止 当前 客 户同 时 修改 同样 的
Application应用级变量 。
( 2) 和 Lock方法相反,Unlock方法允许其他客户修改 Application对象的属性 。
11.5.3 事件
1,Application-OnStart事件
Application_OnStart事件在首次创建新的会话(即
Session_OnStart事件)之前发生。当 Web服务器启动并允许对应用程序所包含的文件进行请求时就触发 Application_OnStart事件。
2,Application_On End事件
Application_OnEnd事件在应用程序退出时于 Session_OnEnd事件之后发生,Application_ OnEnd事件的处理过程也必须写在
Global.asa文件之中 。
11.6 Session对象用户可以使用 Session对象存储特定的用户会话所需的信息 。 当用户在应用程序的页之间跳转时,存储在 Session对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在 。
当用户请求来自应用程序的 Web页时,如果该用户还没有会话,
则 Web服务器将自动创建一个 Session对象 。 当会话过期或被放弃后,服务器将终止该会话 。
11.6.1 属性
1,SessionID
SessionID属性是返回用户的会话标识。
2,TimeOut
Timeout属性以分钟为单位为该应用程序的 Session
对象指定超时时限。
11.6.2 方法
Session对象仅有一个方法,即 Abandon,该方法删除所有存储在 Session对象中的对象并释放这些对象的源。
11.6.3 事件
Session对象有两个事件可用于在 Session对象启动和释放时运行过程 。
( 1) Session_OnStart事件在服务器创建新会话时发生。
( 2) Session_OnEnd事件在会话被放弃或超时发生。
11.7 Object Context对象可以使用 Object Context对象提交或撤消由 ASP脚本初始化的事务 。 该对象用于控制 Active Server Pages的事务处理 。
11.7.1 事件
Object Context.OnTransactionAbort
由放弃的事务处理事件激发,在脚本完成处理后发生 。
Object Context.OnTransactionCommit
由成功的事务处理事件处理激发,在在脚本完成处理后发生 。
11.7.2 方法
Object Context.SetAbort
显示的放弃一次事务处理 。
Object Context.SetComplete
覆盖前面任何调用 Object Context.SetAbort方法的调用 。
应该掌握以下内容:
1,ASP基础
2,ASP的内置对象
3,各个内置对象的属性和方法第 11章 示例网页利用 ASP
实现交互功能
11.1 ASP基础
11.1.1 ASP的特点和功能
1,ASP的特点
使用 VBScript,JavaScript等简单易懂的脚本语言,结合 HTML代码,即可快速地完成网站的应用程序 。
无须编译,可直接解释执行 。
使用普通的文本编辑器,即可进行页面的编辑与设计 。
独立于浏览器,用户端只要使用可执行 HTML码的浏览器,即可浏览 ASP所设计的网页内容 。
ASP能与任何 Activex Scripting语言相容 。
源程序不会外漏,ASP脚本是在服务器上执行,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性 。
面向对象,具有无限可扩充性 。
2,ASP的功能从应用角度看,ASP具有如下功能:
处理由浏览器传送到服务器的表单输入 。
访问和编辑服务器的数据库表 。
读写服务器的文件,实现访客计数器等功能 。
提供广告轮播器,取得浏览器信息,URL表管理等内置功能 。
可以实现在多个主页间共享信息 。
11.1.2 ASP对象
ASP提供了可在脚本中使用的对象 。 这些对象可分为内置组件以及外挂组件 。
1,内置组件内置组件是指组件本身内置于 ASP中,使用时不需要设置即可运行 。 最常用的包括 Application,Session、
Response,Request及 Server5种 。
2.外挂组件在存取数据库时,最常使用 ADO( ActiveX Data
Object) 的技术和 ASP结合,达到存取数据库的功能 。
这样,在网页上不但可以显示数据库的内容,还可以运行 SQL语句,让用户可以在网页上对数据进行查询,删除,和新增等等操作 。
ADO 主要的 3个对象为 Connection,Recordset 及
Command。
11.2 Request对象
Request对象通常包括了用户端的相关信息,如浏览器的种类,表头信息,表单参数及 cookies等 。
Request对象的语法描述如下:
Request[.collection | property | method]( variable)
1,Request对象属性( Property)
Request对象只提供一个只读的 TotalBytes属性,
它表示从客户端所接收的数据大小 。
语法如下:
字节大小 =Request.TotalBytes
2,Request对象方法 ( Method)
Request对象提供的 BinaryRead方法在实际应用上并不是很常用的,它是以二进制方式来读取客户端使用 POST传递方法所传递的数据 。
语法如下:
Variant数组 =Request.BinaryRead( Cont)
3,QueryString数据集合
QueryString数据集合可以取得 HTTP的附加参数,
这些附加参数通常用,?,来表示连接,
4,Cookies数据集合如果要判断某个用户是否曾经进入本网站,只能使用
Cookies文件 。
语法如下:
Cookies Value=Request,Cookies(CookiesName)[(key)
|.Attribute]
5,Server Variables数据集合
ServerVariables数据集合负责取得 Web服务器端的环境变量,
6,ClientCertificate数据集合
Request对象的 ClientCertificate数据集合可以让用户取得客户端的身份权限数据,
11.3 Response对象
Response对象包含 Web服务器所要响应给用户的各项信息 。
11.3.1 方法
1,Write方法
Response的 Write方法是负责将字符串信息输出至用户端,其语法如下:
Response.Write任何数据类型
2,Redirect方法
Response的 Redirect方法是负责引导客户端的浏览器显示新的网页,其语法如下:
Response.Redirect URL字符串
3,Binary Write方法
Response的 Binary Write方法可以在不作任何转换动作而直接显示二进制数据库给用户,其语法如下:
Response.Binary Write二进制数据
4,Append ToLog
Response的 Append ToLog方法允许用户以附加的方式,将用户信息记录至 Web服务器的记录文件,以便日后追踪与分析,其语法如下:
Response.AppendToLog“所要记录的字符串,
5,AddHeader方法
Response对象的 AddHeader方法可以允许用户自行设置 HTML文件的 HTTP标题 ( header) 。 AddHeader
方法的语法如下:
Response.AddHeader Name,Value
6,Clear方法
Response对象的 Clear方法会清除在缓冲区里的 HTML
输出数据 。
7,Flush 方法
Response对象的 Flush方法会将缓冲区的数据立即送至服务客户端 。
11.3.2 属性
1,CacheControl属性
Response对象的 CacheControl属性值可以为 Public或
Private两种,前者表示 Web服务器会将 ASP的处理结果暂时存放于 Proxy服务器上,后者则不会将数据存放于 Proxy服务器上 。
2,Charset属性
Response对象的 Charset属性可以用来设置 Web服务器响应给客户端的文件字符编码,
3,ContentType属性
Response对象的 ContentType属性可以用来设置
Web服务器响应给客户的 HTTP文件类型,
4,Expires属性
Response对象的 Expires属性可以用来设置网页将保留在浏览器的 Cache中的数据,或是直接从 Web服务器中重新取得数据 。
5,ExpiresAbsolute属性
Response对象的 ExpiresAbsolute属性在功能上于
Expires属性非常相似,其最大的不同在于前者是以日期时间来设置数据被保留在客户端 Cache的时间长短,
而后者是以保留分钟数来设置的 。
6,IsClientConnected属性
Response对象的 IsClientConnected属性是一个只读属性,它可以取得最近一次 Response.Write之后,客户端是否还是与 Web服务器保持连接的信息 。
7,PICS属性
Response对象的 PICS属性可以设置 PICS标签到响应的标头,
8,Status属性
Response对象的 Status属性可以用来设置 Web服务器响应给服务器端浏览器的状态值 。
11.3.3 数据集合
Response对象只有 Cookies一个数据集合,Cookies数据集合允许用户将数据设置在客户端的浏览器中,假如用户所指定名称的 Cookies不存在,系统会自动在客户端的浏览器中建立新的 Cookies,反之,如果指定的
Cookies已经存在客户端的浏览器中,那么系统会自动更新数据 。 其使用语法如下:
Response.Cookies ( CookiesName )
[( Key),Attribute]=Cookies Value
11.4 Server对象
Server对象提供对服务器上的方法和属性的方法,其中大多数方法和属性是作为实用程序的功能服务的 。 语法如下:
Server.property | method
其中 property表示 Server对象的属性,method表示 Server
对象的方法 。
11.4.1 属性
Server的属性只有一个 ScriptTimeout属性,该属性主要是来设置 ASP程序所允许的最长时间,其设置以
“秒”为单位,系统的缺省值为 90秒。
11.4.2 方法
1,CreateObject方法
CreateObject方法允许客户端用户建立一个 ActiveX Server组件实例,当前 ASP页处理完成之后,服务器将自动破坏这些实例对象。
2,MapPath的方法
MapPath方法可以将指定的虚拟路径转换为真实的路径,这里所谓的虚拟路径是指 Web服务器所建立的虚拟路径 。
3,HTMLEncode方法
HTMLEncode方法是对指定的字符串应用 HTML编码。
4,URLEncode方法
URLEncode方法将 URL编码规则,包括转义字符,应用到指定的字符串中。
11.5 Application对象
Application对象是可以让所有用户共同使用的对象 。
通过 Application对象的使用,可以让所有用户存取
Application所设置为同一个名称的变量,让用户可以同时得到某一项信息 。
11.5.1 属性虽然 Application对象没有内置的属性,但可以设置用户定义的属性也可称为集合 。
11.5.2 方法
Application对象有两个方法,它们都是用于处理多个用户对存储在 Application中的数据进行写入的问题 。
( 1 ) Lock 方 法 禁 止 当前 客 户同 时 修改 同样 的
Application应用级变量 。
( 2) 和 Lock方法相反,Unlock方法允许其他客户修改 Application对象的属性 。
11.5.3 事件
1,Application-OnStart事件
Application_OnStart事件在首次创建新的会话(即
Session_OnStart事件)之前发生。当 Web服务器启动并允许对应用程序所包含的文件进行请求时就触发 Application_OnStart事件。
2,Application_On End事件
Application_OnEnd事件在应用程序退出时于 Session_OnEnd事件之后发生,Application_ OnEnd事件的处理过程也必须写在
Global.asa文件之中 。
11.6 Session对象用户可以使用 Session对象存储特定的用户会话所需的信息 。 当用户在应用程序的页之间跳转时,存储在 Session对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在 。
当用户请求来自应用程序的 Web页时,如果该用户还没有会话,
则 Web服务器将自动创建一个 Session对象 。 当会话过期或被放弃后,服务器将终止该会话 。
11.6.1 属性
1,SessionID
SessionID属性是返回用户的会话标识。
2,TimeOut
Timeout属性以分钟为单位为该应用程序的 Session
对象指定超时时限。
11.6.2 方法
Session对象仅有一个方法,即 Abandon,该方法删除所有存储在 Session对象中的对象并释放这些对象的源。
11.6.3 事件
Session对象有两个事件可用于在 Session对象启动和释放时运行过程 。
( 1) Session_OnStart事件在服务器创建新会话时发生。
( 2) Session_OnEnd事件在会话被放弃或超时发生。
11.7 Object Context对象可以使用 Object Context对象提交或撤消由 ASP脚本初始化的事务 。 该对象用于控制 Active Server Pages的事务处理 。
11.7.1 事件
Object Context.OnTransactionAbort
由放弃的事务处理事件激发,在脚本完成处理后发生 。
Object Context.OnTransactionCommit
由成功的事务处理事件处理激发,在在脚本完成处理后发生 。
11.7.2 方法
Object Context.SetAbort
显示的放弃一次事务处理 。
Object Context.SetComplete
覆盖前面任何调用 Object Context.SetAbort方法的调用 。