维护啦:提供专业网站维护服务,以实惠、方便、快捷著称!一次服务,终身朋友! ·付款帐号 ·联系我们
网站维护,网站维护教程,如何维护网站
网站维护热线: 网站维护咨询热线 网站维护:
网站维护
网站建设: 网站建设
首页
维护介绍
维护套餐
案例分享
维护申请
维护反馈
维护知识
行业动态
联系我们
建站服务请点这里>>
网站维护申请
当前位置:网站维护 > 维护知识 > 程序知识

使用集合

来源:网站维护 作者:www.weihula.com 人气: 2010-5-29
内容提示:通过使用项目名称可以访问集合中的具体项目。例如,Contents 集合拥有在 Session 对象中保存的所有变量。同样也拥有由 Server.CreateObject 创建的所有对象。

通过名称和索引访问项目
通过使用项目名称可以访问集合中的具体项目。例如,Contents 集合拥有在 Session 对象中保存的所有变量。同样也拥有由 Server.CreateObject 创建的所有对象。假设在 Session 对象中存储了下列用户信息:

<%
Session.Contents("FirstName") = "Sam"
Session.Contents("LastName") = "Woo"
Session.Contents("Age") = 29
%>
可以使用在集合中存储项目时关联的名称访问项目。例如,下面的表达式返回字符串“Sam”:

<%= Session.Contents("FirstName") %>
通过使用与项目关联的索引或号码也可以访问项目。例如,下面的表达式检索存储在 Session 对象的第二个存储槽中的信息并且返回“Woo”:

<%= Session.Contents(2) %>
ASP 集合从 1 开始编号。当在集合中增加或删除项目时,与项目关联的索引将会改变。所以不能认为项目的索引始终不变。正如将在下面的主题中说明的那样,利用索引的访问一般用来遍历集合,或访问只读集合中的项目。

通过使用速记的名称可以访问项目。ASP 以特定的顺序搜索与对象关联的集合。如果在对象的集合中特定名称的项目只出现一次的话,可以消除该集合的名称:

<%= Session("FirstName") %>
访问存储在 Application 或 Session 对象中的项目时,消除集合名称一般是安全的。但是,对于 Request 对象,最好指定集合名称,因为该集合很可能包含重复的名称。

遍历集合
在集合的所有项目中遍历可以了解集合中存储的项目或修改项目。遍历集合时,必须提供集合名称。例如,可以使用 VBScript 中的 For...Each 语句访问存储在 Session 对象中的项目:

<%
'Declare a counter variable.
Dim Item

'For each item in the collection, display its value.
For Each Item in Session.Contents
  Response.Write Session.Contents(Item) & "<BR>"
Next
%>
可以使用 VBScript 中的 For...Next 语句遍历集合。例如,要列出上例中存储在 Session 中的三个项目,可以使用下列语句。

<%
'Declare a counter variable.
Dim Item

'Repeat the loop until the value of counter is equal to 3.
For Item = 1 to 3
  Response.Write Session.Contents(Item) & "<BR>"
Next
%>
因为一般不知道存储在集合中的项目个数,ASP 支持集合的 Count 属性,这个属性返回集合中的项目数。可以使用 Count 属性指定计数器的终值。

<%
'Declare a counter variable.
Dim Item

'Repeat this loop until the counter equals the number of items
'in the collection.
For Item = 1 to Session.Contents.Count
   Response.Write Session.Contents(Item) & "<BR>"
Next
%>
可以在脚本中使用 for 语句在集合中循环。在 JScript 的 for 语句中使用 Count 属性时,为了收到更大的效果,应该将 Count 值分配给本地变量并使用该变量设置计数器终值。这样,脚本引擎就不需要每次循环都查寻 Count 的值。下面的例子展示了这个技巧:

<%
var item, numitems;
numitems = Session.Contents.Count;
for (item = 1; item <= numitems; item++) {
  Response.Write(Session.Contents(item) + "<BR>")
}
%>
Microsoft JScript 3.0 引入了 Enumerator 对象。可以使用该对象遍历 ASP 集合。atEnd 方法指出了集合中是否还存在项目。moveNext 方法移动到集合中的下一个项目。

<%
// Create an Enumerator object
var mycoll = new Enumerator(Session.Contents);

//Iterate through the collection and display each item
while (!mycoll.atEnd()) {
  var x  = mycoll.item();
  Response.Write(Session.Contents(x) + "<BR>");
  mycoll.moveNext();
}
%>
遍历带子关键字 (Subkeys) 的集合
脚本在单一 cookie 中嵌入相关值以减少在浏览器和 Web 服务器之间传送的 cookie 数目。因此 Request 和 Response 对象的 Cookies 集合能够在单一项目中拥有多个值。这些子项目或子关键字可以被单个访问。只有 Request.Cookies 和 Response.Cookies 集合支持子关键字 (Subkeys)。Request.Cookies 只支持读操作;Response.Cookies 只支持写操作。

可以列举 Request.Cookie 集合中所有的 cookie 以及 Cookie 中所有的子关键字 (Subkeys)。但是,如果在没有子关键字 (Subkeys) 的 Cookie 上遍历子关键字,将不会产生任何结果。通过使用 .HasKeys 语法首先检查 cookie 是否含有子关键字 (Subkeys),就可以避免这种情况。下面的这个例子展示了这个技巧。

<%
'Declare counter variables
Dim Cookie, Subkey

'Display the entire cookie collection.
For Each Cookie in Request.Cookies
  Response.Write Cookie & "<BR>"
    If Request.Cookies(Cookie).HasKeys Then
      'Display the subkeys
      For Each Subkey in Request.Cookies(Cookie)
 Response.Write Subkey & "=" & Request.Cookies(Cookie)(Subkey) & "<BR>"
      Next
    Else
      Response.Write "No subkeys in this cookie <BR>"
    End If
Next   
%>
遍历对象集合
Session 和 Application 集合可以保存数量变量或者对象实例。Contents 集合拥有数量变量和通过调用 Server.CreateObject 生成的对象实例。StaticObjects 集合拥有在 Global.asa 文件中使用 HTML <OBJECT> 元素创建的对象。

在遍历包含对象的集合时,可以访问对象的标识符或对象的方法和属性。例如,假设应用程序使用一些对象创建用户帐号,而且每个对象有初始化方法,可以遍历 StaticObjects 集合来调用每个初始化方法:

<%
For Each Object in Session.StaticObjects
  Session.StaticObjects(Object).InitializeUser
Next
%>
ASP 集合有何不同之处?
尽管在本主题中讨论的 ASP 集合与 Visual Basic 的 Collection 对象非常相似,但还是有些不同。ASP 集合支持 Count 属性和 Item 方法,但不支持 Add 和 Remove 方法

【声明】本文章系本站编辑转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!
收藏本页到:

感谢您对维护啦的大力支持!

上一篇 上一篇:使用组件和对象
下一篇 下一篇:提高拆分数据库在网上运行、编辑的速度
返回文章目录 返回维护知识
icon-008.jpg (3733 bytes) icon-009.jpg (3728 bytes)
维护啦是做什么的,点此了解>>
维护啦的优势是什么,点此了解>>
维护啦服务有哪些,点此了解>>
维护服务申请,点这里>>
维护动态 网站维护套餐介绍 更多动态 维护动态
·入门型网站维护服务 申请>>
·标准型网站维护服务 申请>>
·经济型网站维护服务 申请>>
·商务型网站维护服务 申请>>
·豪华型网站维护服务 申请>>
·专业型网站维护服务 申请>>
·订制型网站维护服务 申请>>
维护动态 网站维护案例 更多动态 维护动态
西箔侯铝箔餐盒
铜川市重德热力运营管理有限公司
青海旅游包车
西安中联传感技术有限公司
莱德种业
维护动态 网站维护知识 更多动态 维护动态
·域名知识 ·空间知识
·网页知识 ·程序知识
·数据库知识 ·邮件知识
·安全知识 ·优化知识
·营销知识 ·其他知识
网站维护 网站维护申请 网站维护申请点此进入 网站维护意见反馈 反馈意见

网站维护电话咨询

网站维护 返回顶部
关于维护啦 | 案例分享 | 维护套餐 | 维护申请 | 意见反馈 | 维护知识 | 行业动态 | 友情链接 | 网站导航 | 联系方式
2023 © 网站维护 www.weihula.com 版权所有 ICP11006297