第五章.ASP动态网站开发教程

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2. Application对象的方法 Application对象共有两个方法,它们分别是Lock方法和 Unlock方法。 在一个ASP应用程序中,如果同时访问的用户很多,就可能 会出现很多用户同时修改某个Application变量,这时如果没有 一个良好的机制来确保同一时刻仅有一个用户修改和存取 Application变量,后果将是无法想像的。Lock和Unlock方法正 是为此而设计的,在使用Lock以后,可以防止其他用户修改存 储在Application对象中的变量,直到用户使用Unlock方法或超 时,才解开Application对象,这样就确保在同一时刻只有一个 用户可以修改和存储Application对象中的变量。Lock方法和 Unlock方法的语法格式分别如下: Application.Lock Application.Unlock
5.1.1利用Application存储信息

Application对象是一个应用级的对象,它可以产 生一个全部WEB应用程序都可以访问的变量。 语法:
保存: Application(“Application名字”)=变量或字符串信息 获取: a=Application(“Application名字”)
第五章 ASP对象与网页制作应用


Application 对象 Session 对象 Server 对象
5.1 Application和Session对象
在同一虚拟目录及其子目录下的所有 .asp文件构成了 ASP应用程序。使用Application 对象,可以在给定的应用 程序的所有用户之间共享信息,并在服务器运行期间持久 的保存数据。 通过Application对象所提供的方法和集合,可以使用 编程的方法控制ASP的应用程序。 Application对象包含许多的集合、方法和事件,但是它 没有属性,这点与其他的ASP内置对象有着很大的区别。


利用Application存储信息
Test5_5.asp Test5_6.asp
5.1.2 Application 对象集合
1. Application对象的集合 ASP的Application对象有两个集合: Contents集合和StaticObjects集合。 Contents集合是由所有通过脚本语言添加到应用程序的变量和 对象组成的集合,可以使用这个集合来获取给定的应用程序作 用域的变量列表或指定某个变量为操作对象。 StaticObjects集合包含所有的在Application对象的指定范围内 在Global.asa文件中由<Object>标记创建的对象。可以通过该集 合来确定某个对象的指定属性或遍历所有对象的所有属性。
5、要注意的是,会话状态仅在支持cookie的浏览器中保留,如果客 户关闭了Cookie选项,Session也就不能发挥作用了。
6、Session对象有两种结束方法:一种是隐式方式,另一种是显式方 式。
隐式方式:是当用户访问Web服务器的时间间隔超过Session对象的 TimeOut属性设置的时间限制时,Session对象自动结束;显式方式: 则是利用Session对象的Abandon方法来中止Session。当Session结束 之后,Session对象的变量也将被释放,其值不可再用。
5.1.2 Session对象及其使用
1、 Session对是实现用户会话管理的重要手段,Session其实指的就是 用户从到达某个站点直到离开为止的那段时间内,服务器端分配给用户 的一个存储信息的全局变量的集合,这些变量可以是自动生成的,也可 以是编程者在服务器端脚本程序中定义的。 2、与Application对象不同,即使有很多用户同时访问一个Web服务 器的同一ASP程序,他们的Session对象的内容亦是不同的。 3、当用户在应用程序的Web页面之间跳转时,存储在Session对象中 的变量将不会丢失,而且在整个用户会话中会一直存在下去。 4、当用户请求ASP应用程序的某个页面时,若用户尚未建立 Session 对象,服务器端就会自动创建一个Session对象,并指定一个唯一的 Session ID,这个ID只允许此Session ID的拥有者使用,不同的用户的 Session存储着各自特定的信息,如用户姓名、性别、浏览器类型、显示 器分辨率、访问时间等,这将有利于服务器对用户身份的鉴别,从而实 现Web页面的个性化。
<% Application("StoredArray")(3) = "new value" %> ╳ 应该先建立数组的一个副本 ,对该副本操作完毕,再将其存放到 Application对象中。Hale Waihona Puke Baiduredim book(2) book(0)="高等数学习题及解答" book(1)="高等数学复习指导" book(2)="政治经济学习题及解答" Application("复习指导书")=book
<HTML> <HEAD><TITLE>使用Session变量</TITLE></HEAD> <BODY> <P>使用Session变量<P> <%
Session.Contents("counter")=Session.Contents("cou nter")+1
%> <FONT size=6 face=方正舒体 color= blue> 您是第<%=Session.Contents("counter")%>次来访! </FONT> </BODY> </HTML>
1. Session对象的集合 与Application对象一样,Session对象也有两个集合: Contents集合和StaticObjects集合。其中,Contents集合保存 所有非对象的Session变量,而StaticObjects集合则保存所有的 Session对象变量。
(1) Contents集合 Contents集合是使用Session对象定义的在ASP应用程序中的 一组变量。这些变量的作用域为用户层,并且在整个ASP应用 程序都是可用的。这是Session对象默认的集合,因此下述两种 格式是等价的: Session.Contents("变量名") Session ("变量名")
(1) Contents集合
Contents集合是Application对象所记录的所有非对象变量,这是 Application对象默认的集合,因此下述两种格式是等价的:
Application.Contents("变量名") Application("变量名") 说明:“变量名”是需要操作的Application变量名称。 使用Application对象编写计数器程序。 <HTML> <HEAD><TITLE>使用Application变量</TITLE></HEAD> <BODY> <P><FONT size=4 face=方正舒体 color= blue>使用Application变量 <P> <% Application.Contents("counter")= Application.Contents("counter")+1 %> <FONT size=6>您是第<%=Application.Contents("counter")%>位来 客 </FONT> </BODY>
Response.write "欢迎<b>" & name & "</b>,你是来到" Response.write "<b>" & chat & "</b>讨论区的第" Response.write Application.Contents(i+1) & "位客人<p>" Response.write "<a href=5_20.asp>返回</a>" Application.Unlock 当I=0时I+1的值为1,表示applianction Response.end 中的第一个变量即 chinese; end if 当I=1时表示applianction中的第二个变 %> 量即 english <form METHOD=POST> <table><tr><td>名字:<td><input type=text name="visitor" size=12> <tr><td>讨论区:<td><Select name=Chatno> <option value=0>中文</option> <option value=1>英文</option> </select> <input TYPE=SUBMIT value="确定"> </table> </form> </body></html>
说明: ① 多次打开浏览器,运行程序,可以看到Application变量值的改 变。 ② Application对象的生命周期是服务器运行期间,因此当虚拟服 务器(你的PC)关机后,Application变量将丢失。要想保留变量 的值,需要用到文件系统的概念。
(2) StaticObjects集合 Application对象的SaticObjects集合是通过<Object>标记在Global.asa 文件中创建的。在StaticObjects集合中保存着所有在Application对象范 围内的由<Object>标记创建的变量和对象,通过该集合,可以检索和读 取这些变量和对象。 在Global.asa文件中,使用如下的代码可以建立一个Application级 的对象: <OBJECT runat=Server Scope=Application ID=Priconn ProgID="Adodb.Connect ion"> 说明:Contents集合中可以使用的对Application变量的操作方法,在 这里都可以使用。 (3) 存储数组 在Application对象中可以存储数组,但是不能直接更改存储在数组中 的元素,这是因为Application对象是作为集合实现的。如果将数组存放 在Application对象中,则对该数组进行操作时,应先建立数组的一个副 本,对该副本操作完毕,再将其存放到Application对象中。
3. Application对象的事件 Application对象有两个事件,OnStart事件和OnEnd事件。 Application_OnStart事件是在Application对象开始时被触发, 并且只在第一个用户的第一次请求时触发一次。它主要用于初 始化变量、创建对象和运行其它代码。 Application_OnEnd事件是在整个Application对象结束时才被 触发的。当它被触发时应用程序的所有变量也相应被取消。 Application对象的Application_OnStart和 Application_OnEnd事件过程只能在Global.asa文件中创建。
使用Lock方法和Unlock方法确保同一时刻只有一个用户可以修改和存储 Application对象中的变量。
<html> <head></head> <body> <h3>Application实例</h3><hr> <% name=Request.Form("visitor") i=Request.Form("chatno") if name<>"" then Application.Lock if i=0 then Application("chinese")=Application("chinese")+1 chat=“中文” ‘变量1 elseif i=1 then Application("english")=Application("english")+1 chat=“英文” ‘变量2 end if
使用 Application 对象时必须注意: 1)不能在Application 对象中存储ASP内建对象。 例如,下面的每一行都返回一个错误。 Set Application("var1")=Session Set Application("var2")=Request
2)若将一个数组存储在Application对象中,请不要直接更改存储在 数组中的元素。
相关文档
最新文档