理学第3章-ASP内置对象_第1页
理学第3章-ASP内置对象_第2页
理学第3章-ASP内置对象_第3页
理学第3章-ASP内置对象_第4页
理学第3章-ASP内置对象_第5页
已阅读5页,还剩133页未读 继续免费阅读

下载本文档

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

文档简介

第3章ASP内置对象第3章ASP内置对象3.1Request对象 3.2Response对象 3.3Server对象 3.4Session对象 3.5Application对象3.6ObjectContext对象 3.7Global.asa文件3.8本章小节本章将介绍ASP本身所提供的对象,这些对象在使用时并不需要经过任何声明或建立的过程,因此,称为ASP内置对象。它们包括Request对象、Response对象、Server对象、Session对象、Application对象,以及ObjectContext对象。这些对象都有其特别的任务与工作,在详细阐述之前,先简单地说明每个内置对象的功能,然后再将这些对象分六个小节进行介绍。

对象名称主要作用Request对象负责在HTTP请求期间检索客户端浏览器传递给服务器的信息。

Response对象动态响应客户端请求(Request),并将动态生成的响应结果返回到客户端浏览器中

Server对象创建对象以及提供服务器属性信息Session对象负责存储单个用户的信息,以便重复使用Application对象负责存储共享数据以供多个用户使用ObjectContext对象

供ASP程序直接配合MicrosoftTransactionServer(MTS)进行分散式的事务处理。

所谓对象,就是把一些功能封装好,至于其内部具体是怎么工作的,用户不需要管,只要会使用它就行了。ASP之所以简单实用,主要是因为它提供了功能强大的内部对象和内部组件。3.1Request对象

Request对象通常包括了用户端的相关信息,如浏览器的种类、表头信息、表单参数及cookies等等。而Response对象则是包含Web服务器所要响应给用户的各项信息。这两个对象的功能是对立的,它们结合在一起可以实现客户端与服务器端的数据交换。Request对象的语法描述如下:

Request[.collection|property|method](variable)Request[.集合|属性|集合](变量或字符串)

其中collection表示Request对象的集合,property表示Request对象的属性,method表示Request对象的方法,variable是一些字符串,这些字符串指定要从集合中检索的项目,或作为方法或属性的输入。

Request对象只提供一个TotalBytes属性,这是一个只读的属性,表示从客户端所接收数据的字节的长度。其语法如下:字节长度=Request.TotalBytesRequest对象属性例:3-1.asp

Request对象提供BinaryRead方法,该方法是以二进制方式来读取客户端使用POST传送方法所传递的数据。其语法形式如下:Variant数组=Request.BinaryRead(Count)Request对象方法一般不常用这种方法

Request对象是ASP的请示对象,是用来从客户端浏览器获取信息的对象。

Request对象提供了5个集合,可以用来获取客户端对Web服务器请求的各类信息,这些集合如表所示。Request对象数据集合1、Form数据集合

Form数据集合是Request对象中最常用的数据集合,它检索的是以POST方式提交的HTML表单元素的数据。其语法如下:

其中表单对象名称是指定要检索的表格元素的名称,索引值是访问某参数中多个值中的一个。表单对象内容=Request.Form(“表单对象名称”)或表单对象内容=Request.Form(“索引值”)如何利用Form数据集合来取得用户在表单中所填写的内容:1建立一个HTML的表单输入程序 (例:3-2.htm)2建立一个处理表单的ASP程序 (例:3-2.asp,书中给出三种asp程序的写法)表单对象内容=Request.Form(“表单对象名称”)表单对象内容=Request.Form(“索引值”)利用ForEach…Next循环的方法来取得所有表单对象的内容值ForEach…Next语法:

ForEachElementInFormGroup[其他ASP命令,即循环体] NextElement变量:表单中各元素的名称(name)Request.Form(Element)

:表单中各元素的内容

3-2.asp所介绍的方法只能取得某一名称的表单对象,如何取相同名称的内容值:1建立一个HTML的表单输入程序 (例:3-3.htm)2建立一个处理表单的ASP程序 (例:3-3.asp)组件名称相同的总数=Request.Form(“表单对象名称”).Count或组件名称相同的总数=Request.Form(“索引值”).Count组件名称相同的内容值=Request.Form(“表单对象名称”)(索引值”)或组件名称相同的内容值=Request.Form(“索引值”)(索引值)2、QueryString数据集合

QueryString集合用来收集以GET方式提交的数据表单,而以POST方式提交的表单数据则用Form集合来收集。

QueryString数据集合与Form数据集合在实现上没有太大的区别,主要的区别在于前者是通过取得HTTP的附加参数来传递数据(附加参数通常是使用“?”来连接的,多个参数间用&隔开),而后者是通过单独的数据包来传递数据。QueryString集合不仅仅能收集表单数据,还可以传递附加在URL地址上的信息(非表单数据)。前面用Form集合传递表单元素的例子3-2.htm/3-2.asp,也可以用QueryString集合来实现(例:3-2q.htm/3-2q.asp)注意:表单的method属性:GET用POST方式,采用Form集合可提交的表单数据量较大(100KB);用GET方式,采用QueryString集合可提交的表单数据量较小(2KB)地址栏中的URL地址获取GET方式传递的表单元素的语法表单对象内容=Request.QueryString(“表单对象名称”)或表单对象内容=Request.QueryString(“索引值”)当一个表单元素名称不是唯一的情况组件名称相同的总数=Request.QueryString(“表单对象名称”).Count或组件名称相同的总数=Request.QueryString(“索引值”).Count组件名称相同的内容值=Request.QueryString(“表单对象名称”)(索引值”)或组件名称相同的内容值=Request.QueryString(“索引值”)(索引值)使用QueryString集合除了可以收集以GET方式提交的HTML表单数据,还可以获取用户所传递的变量(例:3-4.asp/3-5.asp)3、Cookies数据集合

什么是Cookies? 什么是Cookie?Cookie其实是一个标签,经常可能听到的中文翻译:小甜饼。 当你访问一个需要唯一标识你的站址的WEB站点时,它会在你的硬盘上留下一个标记,下一次你访问同一个站点时,站点的页面会查找这个标记。

每个WEB站点都有自己的标记,标记的内容可以随时读取,但只能由该站点的页面完成。每个站点的Cookie与其他所有站点的Cookie存在同一文件夹中的不同文件内 一个Cookie就是一个唯一标识客户的标记,Cookie可以包含在一个对话期或几个对话期之间某个WEB站点的所有页面共享的信息,使用Cookie还可以在页面之间交换信息。这项功能经常被使用在要求认证客户密码以及电子公告板、WEB聊天室等ASP程序中。

Cookies为何能够持久发挥作用? 如果服务器没有检测到与用户的对话对应的独一无二的ID,它将生成一个ID并以Cookies的形式发送至客户端。因此,如果用户接受此Cookies,只需接受一次即可。如果不接受此Cookies,伴随每一次点击,都将收到同样的Cookies接受请求,直至接受为止。

Cookies对于访问者有什么作用? 浏览网上商店时,如果选择了几款货物放到购物车里,然后离开。借助Cookies,几天以后再回来时,可以不必重复以前的操作,所选择的货物会仍然保存在购物车中。此外,借助Cookies技术,还可以更好地使用广告页面或网站特定访问区域提供的信息。总体上说,Cookies能够让我们通过分析数据流检测到什么对自己有用,什么没有用,因此可以帮助网站开发者提供更好的网站。有2种使用cookies的基本方式

1、将cookies写入访问者的计算机(使用Response命令)

2、从访问者的计算机中取回cookies(使用Request命令)使用Response对象设置Cookies Cookies是通过Response对象的Cookies集合来创建的。Cookies共有5个属性。 语法:

Response.Cookies(Cookies名)[key].[属性]=值Key为可选参数,表示这个Cookies会以目录的类型加以存储。如果指定了key,则Cookies就是一个字典。测试一cookies是否为一个字典可用后面代码显示布尔值:<%=Request.Cookies("cookiename").HasKeys%>。为true是字典,false则不是。Attribute指定cookie自身的有关信息。①Domain若被指定,则cookie将被发送到对该域的请求中去。域属性表明cookie由哪个网站产生或者读取,默认情况下,cookie的域属性设置为产生它的网站,但你也可以根据需要改变它。Response.Cookies(“CookieName”).Domain=“”

②Path为一路径属性,该属性可以实现更多的安全要求,通过设置网站上精确的路径,就能限制cookie的使用范围。如果未设置该属性,则使用应用程序的路径。Response.Cookies("CookieName").Path="/maindir/subdir/path"③Expires指定cookie的过期日期。为了在会话结束后将cookie存储在客户端磁盘上,或在许多时候,我们希望能更长时间地在访问者的计算机上保存cookie。必须设置该日期。若此项属性的设置未超过当前日期,则在任务结束后cookie将到期。设置cookie的使用到期时间为“2010年1月1日”:Response.Cookies("CookieName").Expires=#January01,2010#后面的代码,将设定cookie的过期时间为“cookie的创建时间+365天”Response.Cookies("CookieName").Expires=Date+365 下面是几个具体实例。 (1)设置一个不含key的Cookies。<%Response.Cookies("username")="陈建军"%>

(2)设置一个含key的Cookies。<%Response.Cookies("username")(name1)="陈建军"%>

(3)设置Cookies有效期。<%Response.Cookies("username").Expires=#2004-10-2#%>执行下面的代码将会在访问者的计算机中创建一个cookie,名字=VisitorName,值=KenResponse.Cookies("VisitorName")="Ken"可以扩展下面的代码成为Cookie子关键值(key),即cookie字典的生成。代码如下:Response.Cookies("VisitorName")("FirstName")="Ken"

Response.Cookies("VisitorName")("LastName")="Baumbach"使用Request对象设置Cookies

利用Request对象的Cookies集合的目的在于获取Cookies的值。 语法:Request.Cookies(Cookies名)[key].[属性]例如:(1)不指定key的用法为了获取一个叫Myname的值:<%=Request.Cookies("Myrname")%>(2)指定key的用法为了获取一个叫Myname的值:<%Response.Writer

Request.Cookies("Myrname")("name")%>Cookies的综合实例 例4:通过留在本地磁盘上的cookie记录一年内访问本站的次数,第一次显示“首次访问”,以后显示“第几次访问”。

<%dimnumnum=request.cookies("visitnum")ifnum>”0”thennum=num+1

Response.write"您已是第"&num&"次访问本站点了。"else

Response.write"欢迎您首次访问本站。"num=“1”endif

response.cookies("visitnum")=num

response.cookies("visitnum").expires=date+365%>

ServerVariables数据集合是负责取得Web服务器端的环境变量(ServerEnvironmentVariable),检索预定的环境变量。 可以利用环境变量的名称来取得指定的环境变量的值,语法如下:Request.ServerVariables("环境变量的名称")(例:3-6.asp)4、ServerVariables数据集合 例6:显示来访者的IP地址。

<%Response.Write"来访者的IP地址是:"&Request.ServerVariables("REMOTE_ADDR")%>

如果客户端浏览器支持SSL(安全套接层)协议,并且服务器端要求进行身份验证,则利用ClinetCertificate集合就可以获取客户端浏览器的身份验证信息。不过如果客户端浏览器未送出身份验证信息,或服务器端也不要求进行身份验证,那么将返回空值。语法如下:Request.ClientCertificate(关键字[子字段])使用SSL验证时,URL以https://开头5、ClientCertificate数据集合3.2Response对象在ASP中负责将信息传递给用户的对象就是Response对象。

Response对象用于动态响应客户端请求(Request),并将动态生成的响应结果返回到客户端浏览器中,使用该对象可以动态创建web页面,改变HTTP标题头等。

Response对象的使用语法为:

其中collection表示Response对象的集合,property表示Response对象的属性,method表示Response对象的方法。Response.collection|property|method

Response对象的方法:方

法功

明AddHeader从名称到值设置HTML标题。AppendToLog在该请求的Web服务器日志条目后添加字符串。BinaryWrite将给出信息写入到当前HTTP输出中,并且不进行任何字符集转换。Clear清理掉缓冲区里所有的HTML输出。End停止处理.asp文件并返回当前的结果。Flush立即向用户发送缓冲的输出。Redirect将重指示信息发送到浏览器,尝试连接另一个URL。Write将变量作为字符串写入当前的HTTP输出。Response对象的属性:属

性功

明Buffer表明页输出是否被缓冲。CacheControl决定代理服务器是否能缓存ASP生成的输出。Charset将字符集的名称添加到内容类型标题中。ContentType指定响应的HTTP内容类型。Expires在浏览器中缓存的页面超时前,指定缓存的时间。ExpiresAbsolute指定浏览器上缓存页面超时的日期和时间。IsClientConnected表明客户端是否与服务器断开。Pics将PICS标记值添加到响应标题的PICS标记字段中。Status服务器返回的状态行的值。

Response对象只有Cookies一个数据集合,它允许将数据设置在客户端的浏览器中。假如所指定名称的Cookies不存在,系统会自动在客户端的浏览器中建立新的Cookies。其语法如下:Response.Cookies(CookiesName[(Key)|.Attribute]=CookiesValueResponse对象的方法Write方法

Response.Write是Response对象中最常用的方法,它可以把变量的值发送到用户端的当前页面,用以向浏览器输出动态信息。 语法:

Response.write

任何数据类型(例:3-8.asp)Redirect方法

Response.Redirect用于使浏览器立即重定向到程序指定的URL。

语法:

Response.Redirect网址变量或字符串 例7:Response.Redirect应用。<html><head><title>Response.Redirect用法示例</title></head><boby><formname=form1"method="post"action="">请选择用户类型:<inputtype="radio"name="user-type"value="loader">领导<inputtype="radio"name="user-type"value="worker">员工<inputtype="submit"value="确定"></form><%IfRequest.form("user-type")="loader"then Response.Redirect"loader.asp"'引导至领导网页Elseif

Request.Form("user-type")="worker"then Response.Redirect"workeer.asp"'引导至员工网页Endif%></body></html>Flush方法

Response.Flush用于立即发送缓冲区的输出。 语法:

Response.FlushEnd方法

Response.End方法使Web服务器停止处理脚本返回当前结果,文件中剩余的内容将不被处理。如果Response.Buffer

属性已设置为TRUE,则调用Response.End将缓冲输出。 语法:

Response.EndClear方法

Response.Clear方法可以清除缓冲区中所有的HTML输出。但Clear方法只清除响应正文而不清除响应标题。如果未将Response.Buffer

属性已设置为TRUE,则该方法将导致运行时错误。 语法:

Response.ClearBinaryWrite方法

Response.BinaryWrite方法可以不经任何字符转换就将指定的信息写到HTTP输出。该方法主要用来写非字符串信息(如客户端应用程序所需的二进制数据等)。 语法:

Response.BinaryWrite

二进制数据AppendToLog方法

Response.AppendToLog方法将字符串添加到Web服务器日志条目的末尾。 语法:

Response.AppendToLog

“要记录的字符串”AddHeader方法(1)

Response.AddHeader方法用指定的值添加HTTP标题,该方法常用来响应添加新的HTTP标题,但它并不替代现有的同名标题。 语法:

Response.AddHeader

Name,ValueAddHeader方法(2)

HTTP协议要求所有的标题都必须在内容之前发送,所以必须在任何的输出(例如由HTML或Write方法生成的输出)发送到客户端之前在脚本中调用AddHeader。 但当Buffer属性设置为TRUE例外。若输出被缓冲,那么就可以在脚本中的任何地方调用AddHeader方法,只要它在Flush之前执行即可。AddHeader方法(3)

例:3-9.asp:页面没有缓冲

例:3-10.asp:页面被缓冲

例:3-11.asp:页面被缓冲,但对AddHeader的调用在对Flush的调用之后出现,脚本产生一个运行时错误。Response对象的属性Buffer属性

Buffer属性是Response对象使用较多的属性之一,主要用来控制是否输出缓冲页,也就是控制何时将输出信息送至请求浏览器,Buffer属性的取值可以是Ture或False,若取TURE为使用缓冲页,反之异然。 该语句需要在.asp文件的第一行使用。

当缓冲页输出时,只有当前页的所有服务器脚本处理完毕或者调用了Flush或End方法后,服务器才将相应发送给客户端。 如果不使用缓冲输出,服务器在处理脚本的同时将输出发送到客户端。例8:使用缓冲页<%Response.Buffer=Ture%><html><head><title>Response输出时使用缓冲页示例</title></head><boby><palign=“center”>Response输出时使用缓冲页<br></br><p><%forI=1to1000Response.Write"使用缓冲"Next%></boby></html>CacheControl属性

该属性可以用来设置Web服务器是否将ASP的处理结果暂时存放在代理服务器上。

Charset属性

该属性用来设置Web服务器形影给客户端的文件字符编码。语法:

Response.Charset=字符集名称例如:

Response.Charset=“gb2312”

ContentType属性

该属性用来指定响应HTTP内容类型。如果未指定ContentType,默认为text/HTML。语法:

Response.ContentType=内容类型以“类型/子类型”来表示。 Expires属性

该属性用来指定在浏览器上缓冲存储的过期还有多少时间。 如果用户在某页过期之前又回到此页,就会显示缓冲区中的版本。 如果设置Response.Expires=0,则可使缓存的页面立即过期。

这是一个较实用的属性,当客户提供ASP的登录页面进入Web站点后,可利用该属性使登录页面立即过期,有助于数据的保密。语法:

Response.Expires=分钟数

ExpiresAbsolute属性

该属性用来指定在浏览器上缓冲中页面的到期日期时间。 如果用户在某页过期之前又回到此页,就会显示缓冲区中的版本。 如果未指定时间,该页面在当天午夜到期。

如果未指定日期,该页面在当天的指定时间到期。语法:

Response.ExpiresAbsolute=日期时间IsClientConnected属性

该属性为只读,指示自上次调用Response.Write之后,客户端是否与服务器相连。PICS属性 该属性用来设置PICS标记,并把响应添加到标头。Status属性 该属性用来设置Web服务器要响应的状态行的值。Response对象的数据集合Response对象只有一个Cookies数据集合。例:3-12.asp3.3Server对象Server对象提供对服务器上的方法和属性的访问,其中大多数方法和属性是作为实用程序的功能服务的。有了Server对象,用户就可以在服务器上启动ActiveX对象例程,并使用ActiveServer服务提供象HTML和URL编码这样的函数。Sever对象的使用语法为:

其中property表示Server对象的属性,method表示Server对象的方法。

Server的属性只有ScriptTimeout,表示超时值,即在脚本运行超过这一时间之后作超时处理。系统的缺省值为90秒。Sperty|methodServer对象的方法:方法描述CreateObject创建服务器组件的实例。HTMLEncode将HTML编码应用到指定的字符串。MapPath将指定的虚拟路径,无论是当前服务器上的绝对路径,还是当前页的相对路径,映射为物理路径。URLEncode将URL编码规则,包括转义字符,应用到字符串。Transfer直接输出.asp文件请求,不必离开服务器队列。Execute执行另一个.asp文件,然后返回当前文件。GetLastError获取ASP的错误。Server对象的属性Server对象只有一个集合。ScriptTimeout属性可以决定一个页面中脚本的运行时间,默认为90秒,如果超出最长的时间就自动停止运行,该时间可以增大调节。例9ScriptTimeout属性应用。<%Server.ScriptTimeout=140%><html><head><title>显示此页面运行的最长的时间</title></head><boby><palign="center">Server对象的ScriptTimeout属性应用<p><%Response.write"此页面运行的最长时间是"Response.write

Server.ScriptTimeoutResponse.write"秒"%></boby></html>Server对象的方法1、CreateObject方法CreateObject

方法允许客户端创建服务器组件的实例。默认情况下,由此方法创建的对象具有页作用域,即当前ASP页处理完成之后,服务器将自动破坏这些实例对象。语法:Set对象实例名称=Server.CreateObject(“ActiveX控件”

)要创建有会话或应用程序作用域的对象,可以使用Session对象保留该对象实例,直到Session对象的运行时间完毕,或者是在其他ASP程序中调用了Session对象的Abandon方法。例如,在如下所示的脚本中,当Session

对象被破坏,即当对话超时时或Abandon

方法被调用时,存储在会话变量中的对象也将被破坏。<%SetSession("ad")=Server.CreateObject("MSWC.AdRotator")%>不能创建与内建对象同名的对象实例。例如,下列脚本将返回错误。<%SetResponse=Server.CreateObject("Response")%>

示例<%SetMyAd=Server.CreateObject("MSWC.AdRotator")%>上面的例子创建一个名为MyAd

的MSWC.AdRotator

服务器组件,MSWC.AdRotator

组件可用于在Web页上的自动轮换广告。2、MapPath方法MapPath

方法将指定的相对或虚拟路径映射到服务器上相应的物理目录上。语法:

Server.MapPath(虚拟路径字符串)MapPath

方法不支持相对路径语法(.)或(..)。例如,下列相对路径../MyDir/MyFile.txt

返回一个错误。MapPath

方法不检查返回的路径是否正确或在服务器上是否存在。对于下列示例,文件data.txt

和包含下列脚本的test.asp

文件都位于目录C:\Inetpub\Wwwroot\Script

下。C:\Inetpub\Wwwroot

目录被设置为服务器的宿主目录。下列示例使用服务器变量PATH_INFO映射当前文件的物理路径。脚本<%=server.mappath(Request.ServerVariables("PATH_INFO"))%>输出c:\inetpub\wwwroot\script\test.asp由于下列示例中的路径参数不是以斜杠字符开始的,所以它们被相对映射到当前目录C:\Inetpub\Wwwroot\Script。脚本<%=server.mappath("data.txt")%><%=server.mappath("script/data.txt")%>

输出c:\inetpub\wwwroot\script\data.txt

c:\inetpub\wwwroot\script\script\data.txt

接下来的两个示例使用斜杠字符指定返回的路径应被视为在服务器的完整虚拟路径。脚本<%=server.mappath("/script/data.txt")%><%=server.mappath("\script")%>输出c:\inetpub\script\data.txtc:\inetpub\script

下列示例演示如何使用正斜杠(/)或反斜杠(\)返回宿主目录的物理路径。脚本<%=server.mappath("/")%><%=server.mappath("\")%>

输出c:\inetpub\wwwroot

c:\inetpub\wwwroot

3、HTMLEncode方法HTMLEncode方法对指定的字符串应用HTML编码。语法:

Server.HTMLEncode(string)示例脚本<%=Server.HTMLEncode("Theparagraphtag:<P>")%>

输出Theparagraphtag:<P>如果查看一下源文件或以文本方式打开一个Web页,您就可以看到已编码的HTML。3、URLEncode方法URLEncode

方法将URL编码规则,包括转义字符,应用到指定的字符串。语法:

Server.URLEncode(string)示例脚本<%Response.Write(Server.URLEncode(""))%>

输出http%3A%2F%2Fwww%2Emicrosoft%2Ecom字符串数据以URL的形式传递到服务器时,在字符串中不允许出现空格,也不允许出现特殊字符。4、Transfer方法Server.Transfer(URL)用于停止当前页面的执行,吧控制转到指定的页面,用户的当前会话状态和事物状态也传递到指定页面,从而避免客户端的重定向,可以节省一些资源。5、Execute方法Server.Execute(URL)停止当前页面的执行,把控制转到指定的网页。用户的当前环境也传递到新的网页。该页面执行完成后,控制传递回原先的页面,并继续执行Execute方法后面的语句。6、GetLastError方法Server.GetLastError返回该页面在ASP处理过程中发生的最近一次错误的详细数据。3.4Session对象 在网站首页客户客户输入了自己的用户名和密码,用什么来记住用户名呢? 到目前为止,我们利用已学知识可以使用下一两种方法。 方法一:利用Request对象的Querystring方法一页一页传递过去。这种方法的缺点是太麻烦。 方法二:利用Cookies保存用户名。 本节再来学习一种更简洁的方法,就是利用Session对象。由于网页是一种无状态的程序,因此无法得知用户的浏览状态。可以使用Session对象存储特定用户会话所需的信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的Web页时,如果该用户还没有会话,则Web服务器将自动创建一个Session对象。当会话过期或被放弃后,服务器将终止该会话。要注意的是,会话状态仅在支持Cookie的浏览器中保留。如果客户关闭了Cookie选项,Session对象也就不能发挥作用了。

任何存储在用户Session中的信息可以在用户调用下一个页面时取得。也就是说,客户在该网站的任何一个页面都可以存取Session信息。 Session对象常被用在: (1)存储用户的首选项; (2)保存用户的身份标记,实现用户的身份认证和用户权限管理等。

Session对象的使用语法为:

其中collection表示Session对象的集合,property表示Session对象的属性,method表示Session对象的方法。Session.collection|property|methodSession对象的集合:

绝大部分的Session变量存放于Contents集合中,当创建一个新的Session变量时,其实就是在Cotents集合中添加了一项。

集合名描述Contents包含已用脚本命令添加到会话中的项目。StaticObjects包含通过<OBJECT>标记创建的并给定了会话作用域的对象。Session对象的属性:属性名描述CodePage将用于符号映射的代码页。LCID现场标识。SessionID返回用户的会话验证。Timeout应用程序会话状态的超时时限,以分钟为单位。Session对象只有一个方法。 Abandon:清除Session对象。

Session对象有两个事件,且必须和Global.asa结合使用。 (1)Session_OnStart:一个Session对象开始前,触发该事件。 (2)Session_OnEnd:一个Session对象结束时,触发该事件。这两个事件的代码必须放在global.asa文件中,语法如下:<SCRIPTLANGUAGE=ScriptLanguageRUNAT=Server>SubSession_OnStart‘事件的处理程序代码EndSubSubSession_OnEnd‘事件的处理程序代码EndSub</SCRIPT>其中,ScriptLanguage是指定用于编写事件脚本的脚本编写语言。

利用Session存储信息语法:Session

(“Session名字”)

=变量或字符串信息Session

.contents(“Session名字”)

=变量或字符串信息绝大部分的Session变量存放在Contents结合中。例10Session的使用方法。<%OptionExplicit%><html><head><title>Session使用方法</title></head><body><%Dimuser_name,age

user_name=“李飞”'这里为了简单,直接赋值了

age=16Session

("user_name")

=user_name'给Session赋值,即自动创建Session

("age")

=age

response.write“<ahref=‘例11.asp'>单击显示用户信息</a>"'链接到例11%></body></html>例11

显示Session信息。<%OptionExplicit%><html><head><title>Session使用方法</title></head><body><%Dimuser_name

user_name=Session("user_name")'将Session值赋给变量

response.write

user_name&"您好,欢迎学习ASP程序设计<br>"

response.write"您的年龄是"&Session("Age")'直接使用Session值%></body></html>例12

使用Session编写计数器程序。<html><head><title>使用session变量计数</title></head><body><P>使用Session变量计数<hr><%Session("counter")=Session("counter")+1'创建Session,并给Session赋值%><fontsize=7face=隶书color=blue>您是第<%=Session("counter")%>次来访!</font></body></html>Session对象的属性 Session对象共有4种属性,分别是SessionID、TimeOut、LCID和CodePage。(1)SessionID属性 语法:Session.SessionIDSessionID

属性返回用户的会话标识。在创建会话时,服务器会为每一个会话生成一个单独的标识。会话标识以长整形数据类型返回。 可以使用以下两种方法来访问SessionID的值: ①<%=SessionID%> ②<%Response.Write(Session.SessionID)%>例13

SessionID的使用。<html><head><title>SessionID的使用</title></head><body><%session("name1")="张三"%><br>你的自动编号为:<%=SessionID%></body></html>(2)Timeout属性 Session对象的Timeout属性用来设置“过期时间”,方法是: ①在ASP的注册表中修改系统默认值; ②用Session对象的Timeout属性可以修改来更改。不过,请注意用该属性更改的有效期长度不能低于默认值20分钟。语法:Session.Timeout=MaxTime例如:<%Session.Timeout=40'将有效期改为40分钟%>Session对象的方法 Session对象到期会自动清除,也就是说,Session对象的生命周期起始于浏览器第一次与服务器联机时,终止于浏览器结束联机时,或浏览器超过20分钟不再向服务器端提出请求或刷新Web页面时。 语法:

Session.Abandon例14

利用Session方法输出,不使用Abandon方法。<html><head><title>sessionID</title></head><body><%Session("user_name")="aa"Session("age")=5response.write"您的名字是:"&session("user_name")&"<br>"response.write"您的年龄是:"&session("age")%></body></html>例15

利用Session方法输出,并使用Abandon方法。<html><head><title>使用abandon方法</title></head><body><%Session.AbandonResponse.write"您的名字是:"&session("user_name")&"<br>"response.write"您的年龄是:"&session("age")%></body></html>3.5Application对象

Application对象和Session对象有很多相似之处,它们的功能都是用于在不同的ASP之间共享信息。最大的不同在于其应用的范围:

Application对象是对所有用户,

Session对象是对单一用户。也就是说,不同的客户访问不同的Session对象,但许多客户可以同时访问公共Application对象。

Application对象简介 ASP应用程序中,如果同时访问的用户很多,就可能会出现很多用户同时修改一个Application变量的值的情况。可以利用Application对象的两个方法:Lock和Unlock来解决。 (1)Lock:锁定Application对象。 (2)Unlock:解除锁定。 Application对象有两个事件,必须和Global.asa结合使用。 (1)Application_OnStart:Application开始前,调用该程序。 (2)Application_OnEnd:Application结束后,调用该程序。利用Application存储信息 Application的使用和Session很相似,可以把变量或字符串等信息很容易地保存在Application中。 语法:

Application("Application名字")=变量或字符串信息例如:<%Application.Lock'锁定Application对象,以防止其他用户更改Application("user_name")=user_name'将user_name变量存入ApplicationApplication("factory")="现代汽车公司"'将字符串信息存入ApplicationApplication.UnLock'解除锁定,以允许别人更改%>例16

使用Application创建聊天室。<html><head><title>使用Application,创建聊天室</title></head><body><fontface=方正舒体color=blue><h2align=center>使用Application,创建聊天室</h2></font><formaction=""method="post"name="form1"><fontsize=6face=方正姚体color=blue>请留言:<inputtype="text"name=

温馨提示

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

评论

0/150

提交评论