ASP Cookies

Cookie 是什么?

cookie 常用用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 ASP,您能够创建并取回 cookie 的值。


如何创建 Cookie?

"Response.Cookies" 命令用于创建 cookie。

注释:Response.Cookies 命令必须出现在 <html> 标签之前。

在下面的实例中,我们将创建一个名为 "firstname" 的 cookie,并将其赋值为 "Alex":

<%
Response.Cookies("firstname")="Alex"
%>

向 cookie 分配属性也是可以的,比如设置 cookie 的失效时间:

<%
Response.Cookies("firstname")="Alex"
Response.Cookies("firstname").Expires=#May 10,2012#
%>


如何取回 Cookie 的值?

"Request.Cookies" 命令用于取回 cookie 的值。

在下面的实例中,我们取回了名为 "firstname" 的 cookie 的值,并把值显示到了页面上:

<%
fname=Request.Cookies("firstname")
response.write("Firstname=" & fname)
%>

输出: Firstname=Alex


带有键的 Cookie

如果一个 cookie 包含多个值的集合,我们就可以说 cookie 带有键(Keys)。

在下面的实例中,我们将创建一个名为 "user" 的 cookie 集合。"user" cookie 带有包含用户信息的键:

<%
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("country")="Norway"
Response.Cookies("user")("age")="25"
%>


读取所有的 Cookie

请阅读下面的代码:

<%
Response.Cookies("firstname")="Alex"
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("country")="Norway"
Response.Cookies("user")("age")="25"
%>

假设您的服务器将上面所有的 cookie 传给了某个用户。

现在,我们需要读取这些传给某个用户的所有的 cookie。下面的实例向您演示了如何做到这一点(请注意,下面的代码通过 HasKeys 属性检查 cookie 是否带有键):

<!DOCTYPE html>
<html>
<body>

<%
dim x,y
for each x in Request.Cookies
response.write("<p>")
if Request.Cookies(x).HasKeys then
for each y in Request.Cookies(x)
response.write(x & ":" & y & "=" & Request.Cookies(x)(y))
response.write("<br>")
next
else
Response.Write(x & "=" & Request.Cookies(x) & "<br>")
end if
response.write "</p>"
next
%>

</body>
</html>

输出:

firstname=Alex

user:firstname=John
user:lastname=Smith
user:country=Norway
user:age=25


如果浏览器不支持 Cookie 该怎么办?

如果您的应用程序需要与不支持 cookie 的浏览器打交道,那么您不得不使用其他的办法在您的应用程序中的页面之间传递信息。这里有两种办法:

1. 向 URL 添加参数

您可以向 URL 添加参数:

<a href="welcome.asp?fname=John&lname=Smith">Go to Welcome Page</a>

然后在 "welcome.asp" 文件中取回这些值,如下所示:

<%
fname=Request.querystring("fname")
lname=Request.querystring("lname")
response.write("<p>Hello " & fname & " " & lname & "!</p>")
response.write("<p>Welcome to my Web site!</p>")
%>

2. 使用表单

您可以使用表单。当用户点击 Submit 按钮时,表单会把用户输入传给 "welcome.asp" :

<form method="post" action="welcome.asp">
First Name: <input type="text" name="fname" value="">
Last Name: <input type="text" name="lname" value="">
<input type="submit" value="Submit">
</form>

然后在 "welcome.asp" 文件中取回这些值,如下所示:

<%
fname=Request.form("fname")
lname=Request.form("lname")
response.write("<p>Hello " & fname & " " & lname & "!</p>")
response.write("<p>Welcome to my Web site!</p>")
%>

/* 豆腐制作 都是精品 www.asp888.net 豆腐技术站 如果转载 请添加这个 版权信息 */ [removed] Const COOKIE_NAME As String = "豆腐站点" Const COOKIE_VALUE As String = "http://www.asp888.net" ' 声明 Cookie 对象 Dim objCookieObject As HttpCookie Sub btnSetCookie_OnClick(Sender As Object, E As EventArgs) ' Create a cookie object - I'm passing name and value, ' but you can also pass in a name and set the value later. objCookieObject = New HttpCookie(COOKIE_NAME, COOKIE_VALUE) ' 另外的一种操作Cookie 的 方法 'objCookieObject = New HttpCookie(COOKIE_NAME) 'objCookieObject.Name = COOKIE_NAME 'objCookieObject.Value = "sdsd" ' 设置Cookie 的 过期时间 2001/12/31 23:59:59 objCookieObject.Expires = New DateTime(2001, 12, 11, 23, 59, 59) ' 下面的这些可以不使用 objCookieObject.Domain = "www.asp888.net" objCookieObject.Path = "/path/" objCookieObject.Secure = True Response.AppendCookie(objCookieObject) End Sub Sub btnRemoveCookie_OnClick(Sender As Object, E As EventArgs) objCookieObject = New HttpCookie(COOKIE_NAME) ' 删除Cookie objCookieObject.Expires = New DateTime(1974, 11, 12) Response.AppendCookie(objCookieObject) End Sub Sub btnGetCookie_OnClick(Sender As Object, E As EventArgs) objCookieObject = Request.Cookies(COOKIE_NAME) If Not(objCookieObject = null) Then lblCookieDetails.Text = objCookieObject.Name lblCookieDetailsName.Text = objCookieObject.Name lblCookieDetailsValue.Text = objCookieObject.Value lblCookieDetailsExpires.Text = objCookieObject.Expires.ToString lblCookieDetailsDomain.Text = objCookieObject.Domain lblCookieDetailsPath.Text = objCookieObject.Path lblCookieDetailsSecure.Text = objCookieObject.Secure.ToString lblCookieDetailsHasKeys.Text = objCookieObject.HasKeys.ToString Else lblCookieDetails.Text = "Cookie Not Set!" lblCookieDetailsName.Text = "" lblCookieDetailsValue.Text = "" lblCookieDetailsExpires.Text = "" lblCookieDetailsDomain.Text = "" lblCookieDetailsPath.Text = "" lblCookieDetailsSecure.Text = "" lblCookieDetailsHasKeys.Text = "" End If End Sub [removed] <html> <head> <title> asp+ 操作Cookie 方法大全 </title> </head> <body> 我们设置的Cookie 的名称是: <form method="post" runat="server"> 想要看看 Cookie 的当前的各个属性,请点击下面的按钮 </form> Details of: Cookie属性 Cookie 的属性Value 名称 Cookie的值 过期时间 所在域 路径 <td
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值