当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP 3.0高级编程(三)

ASP
Access 2000 数据库 80 万记录通用快速分页类
Microsoft JET Database Engine 错误 ''80004005'' 未指定的错误的完美解决方法
收藏的ASP常用的函数集
asp分页的一个类
ASP开发网页牢记注意事项
ASP下操作Excel技术总结分析
ASP数据岛操作类
ASP经典分页类
asp论坛在线人数统计研究
ASP调用SQL SERVER存储程序
asp输出bmp
ASP连接数据库的全能代码
ASP面向对象编程探讨及比较
web文件管理器的后续开发
一小偷类!!有兴趣的可以看看
利用ASP实现事务处理的方法
大数量查询分页显示 微软的解决办法
如何把ASP编写成DLL
asp实现树型结构
超级ASP大分页_我的类容我做主

ASP 3.0高级编程(三)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 192 ::
收藏到网摘: n/a

访问和更新Cookies集合
    Cookies的值比ASP其他集合(例如Form和ServerVariables)的值要复杂得多。Cookie是一小块由浏览器存贮在客户端系统上的文本,且随同每次请求发往它们应用于的域中的服务器。
    ASP使得应用cookie较为容易,可以从Request对象的Cookies集合中获得所有随同请求发出的cookie值,并可创建或修改cookie,通过Response对象的Cookies集合发回给用户。
    Cookie包含可用两种方式构造的信息,单值cookie提供其值给代码是通过一个一般的类ASP集合。然而,集合的每个成员可能本身也是一个集合,包含这种信息的cookie通过称为多值(multiple-Value)cookie。
    创建一个单值的cookie较为简单,如下所示:
    Response.Cookies(“item-name”) = “item-value”
    创建一个多值的cookie,可以使用如下命令:
    Response.Cookies(“item-name”)(“sub-item-name”) = “sub-item-value”
    设置cookie应用的域及路径及其有效期,我们使用:
    Response.Cookies(“item-name”).domain = “domain-url”
    Response.Cookies(“item-name”).path = “virtual-path”
    Response.Cookies(“item-name”).expires = #date#
    通常,客户只在对创建cookie的目录中的页面提出请求时,才将cookie随请示发住服务器。通过指定path属性,可以指定站点中何处这个cookie是合法的,并且这个cookie将随请求发送。如果cookie随对整个站点的页面请求发送,设置
path为“/”。
    假如Expires属性没有设置,关闭当前的浏览器实例时,cookie将被自动消除。
    注意,我们在向浏览器发送任何输出时,已经创建了cookie。因为,这些cookie是页面HTTP报头的一部分。

    在ASP 3.0中,缓冲的缺省状态是打开的,且没有输出被发送,除非使用Response.Flush指定做这个工作或者页面已到末端。这意味着创建cookie的代码可以在页面上的任何位置,直到任何输出“刷新”(flush)到客户端前,它都可以被执
行。

    要读现有的cookie,使用Request.Cookies集合。可以单独访问其中的项目,方法类似于创建它们时使用的方法。
    StrSingleValue = Request.Cookies(“item-name”)
    StrSubItemValue = Request.Cookies(“item-name”)(“sub-item-name”)
    注意Request.Cookies集合(和所有其他Request集合一样)是只读的。Response.Cookies集合是只写的,事实上可以访问这个集合中一系列cookie的名称,而不是它们的值。

遍历Cookies集合
    为了使用Cookies集合更加方便,可使用名称为Haskeys的附加属性。假如访问的cookie本身也是个集合,即它是一个多值的cookie,这将返回True。使用Haskeys属性,可以遍历完整的Request.Cookies集合,从而获得所有cookie的列表及它们的值。
    For Each objItem In Request.Cookies
        If Request.Cookies(objItem).HasKey Then
            ‘Use another For Each to iterate all subkeys
            For Each objItemKey in Request.Cookies(objItem)
                Response.Write objItem & “(“ & objItemKey & “) = “_
                            & Request.Cookies(objItem)(objItemKey) & “<BR>”
            Next
        Else
            ‘Print out the cookie string as normal
            Response.Write objItem & “ = ”& Request.Cookies(objItem) & “<BR>”
        End If
    Next
    这非常类似于前面的从Request.Form集合中提取多个值