asp基础实用教程(DOC格式)-第9部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
如果您只希望cookie在当前的用户会话中被使用,则只需向浏览器发送cookie。但是,如果要在用户已经终止或重新启动浏览器之后确认用户,就必须强制浏览器将cookie存储在计算机的硬盘上。要保存cookie,可使用Response。Cookies的Expires属性并将日期设置为此后的某一天:
cookie可有多个值;这样的cookie被称为一个带索引的cookie。每个cookie值都被赋予一个关键字;您可以设置一个特定的 cookie关键字的值。例如:
如果某个现有的cookie具有关键字值但Response。Cookies未指明一个关键字的名称,则该关键字值将被删除。类似的,如果某个现有的cookie没有关键字值但 Response。Cookies指明了关键字的名称和值,则现有的cookie值将被删除,并生成新的key…value对。
获取cookie
要获取cookie的值,可使用Request。Cookies集合。例如,如果用户的HTTP请求设置了planet=Mars,则下列语句将获取值Mars:
相似的,要从带索引的cookie中获取关键字值,可使用关键字名。例如,如果用户发出下列的HTTP请求:
planet=Mars&Mars=SpaceMissions
下列脚本将返回值SpaceMissions:
设置cookie路径
由ASP存储在用户的Web浏览器中的每个cookie都包含路径信息。当浏览器请求的文件的位置与在cookie中指定的路径相同时,浏览器自动将cookie转发给服务器。默认情况下,cookie路径与包含最初生成cookie的。ASP文件的应用程序名对应。例如,如果在名为UserApplication的应用程序中的 。ASP文件生成了一个cookie,那么每当用户的Web浏览器在此应用程序中获取文件时,除其他在路径/UserApplication 下的cookie外,浏览器还要将该cookie转发给服务器。
要给cookie声明一个不同于默认的应用程序路径的路径,可以使用ASP的Response。Cookies集合的Path属性。例如,下列脚本将路径SalesApp/Customer/Profiles/赋予名为Purchases的cookie:
每当包含Purchasescookie的Web浏览器请求位于路径/SalesApp/Customer/Profiles/或其子目录的文件时,浏览器将cookie转发给服务器。
许多Web浏览器,包括Microsoft Internet Explorer 4。0和Netscape浏览器,保留cookie路径的大小写。也就是说,如果一个被请求的文件的大小写与保留的cookie路径不同,那么浏览器是不会向服务器转发cookie的。例如,对于ASP,虚拟目录/TRAVEL和/travel是相同的ASP应用程序,而对于保留URL的大小写的浏览器而言,/TRAVEL和/travel则是两个不同的应用程序。应确保。ASP文件的所有URL具有相同的大小写,以保证用户的浏览器能够转发存储的cookie。
如果需要,可使用下列语句设置cookie路径,使得无论应用程序或路径是什么,只要用户的Web浏览器向您的服务器请求文件,就会转发cookie:
Response。Cookies(”Purchases”)。Path = ”/”
但是,请注意,在不区分应用程序的情况下向服务器发送cookie,如果cookie包含不应被指定应用程序以外的程序访问的敏感信息,就可能产生安全性问题。
不使用cookie而保留状态
并不是所有的浏览器都支持cookie。即便使用支持cookie的浏览器,有些用户也可能喜欢关闭cookie支持。如果您的应用程序需要响应不支持cookie的浏览器,就必须使用ASP会话管理。
如果您不使用ASP会话管理,就必须编写您自己的机制以便在您的应用程序页之间传递信息。有两种常规的方法可完成该任务:
向 URL 的查询字符串添加参数。例如:
http://MyServer/MyApp/start。asp?name=Jeff
但是,某些浏览器,在表格被以GET方法提交的情况下会丢弃查询字符串中传递的显式参数。
向表格中添加隐含值。例如,以下的HTML表格包含一个隐含的控件。此控件在真正的表格中不出现,而且对用户的Web浏览器是不可见的。通过HTTP POST方法,表格除了传递用户提供的信息外,还传递用户标识。