永发信息网

ASP.NET中如何用session来实现购物车的功能?

答案:1  悬赏:20  手机版
解决时间 2021-04-15 19:26
添加一个global.asax,在global.asax.cs里面如何填写Session_Start,Session_End里面的代码。WebForm.aspx中的部分代码: protected void Page_Load(object sender, EventArgs e)
{
ArrayList array = (ArrayList)Session["cart"];
array.Add("Penceil");

}
接下来该如何实现购物车的功能,请各位高手指教一下!
最佳答案
Session 对象用于存储用户的信息。存储于 session 对象中的变量持有单一用户的信息,并且对于一个应用程序中的所有页面都是可用的。
Session 对象
当您操作某个应用程序时,您打开它,做些改变,然后将它关闭。这很像一次对话(Session)。计算机知道您是谁。它清楚您在何时打开和关闭应用程序。但是在因特网上有一个问题:由于 HTTP 地址无法存留状态,web 服务器并不知道您是谁以及您做了什么。

ASP 通过为每位用户创建一个唯一的 cookie 的方式解决了这个问题。cookie 被传送至客户端,它含有可识别用户的信息。这种接口被称作 Session 对象。

Session 对象用于存储关于用户的信息,或者为一个用户的 session 更改设置。存储于 session 对象中的变量存有单一用户的信息,并且对于应用程序中的所有页面都是可用的。存储于 session 对象中的信息通常是 name、id 以及参数。服务器会为每个新的用户创建一个新的 Session,并在 session 到期时撤销掉这个 Session 对象。
Session 何时开始?
Session 开始于:

•当某个新用户请求了一个 ASP 文件,并且 Global.asa 文件引用了 Session_OnStart 子程序时;
•当某个值存储在 Session 变量中时;
•当某个用户请求了一个 ASP 文件,并且 Global.asa 使用 <object> 标签通过 session 的 scope 来例示某个对象时;
Session 何时结束?
假如用户没有在规定的时间内在应用程序中请求或者刷新页面,session 就会结束。默认值为 20 分钟。

如果您希望将超时的时间间隔设置得更长或更短,可以设置 Timeout 属性。

下面的例子设置了 5 分钟的超时时间间隔:

<%
Session.Timeout=5
%>要立即结束 session,可使用 Abandon 方法:

<%
Session.Abandon
%>注意:使用 session 时主要的问题是它们该在何时结束。我们不会知道用户最近的请求是否是最后的请求。因此我们不清楚该让 session“ 存活”多久。为某个空闲的 session 等待太久会耗尽服务器的资源。然而假如 session 被过早地删除,那么用户就不得不一遍又一遍地重新开始,这是因为服务器已经删除了所有的信息。寻找合适的超时间隔时间是很困难的。

提示:如果您正在使用 session 变量,请不要在其中存储大量的数据。
存储和取回 session 变量
Session 对象最大的优点是可在其中存储变量,以供后续的网页读取,其应用范围是很广的。

下面的例子把 "Donald Duck" 赋值给名为 username 的 session 变量,并把 "50" 赋值给名为 age 的 session 变量:

<%
Session("username")="Donald Duck"
Session("age")=50
%>一旦值被存入 session 变量,它就能被 ASP 应用程序中的任何页面使用:

Welcome <%Response.Write(Session("username"))%>上面这行程序返回的结果是: "Welcome Donald Duck"。

也可以在 session 对象中保存用户参数,然后通过访问这些参数来决定向用户返回什么页面。

下面的例子规定,假如用户使用低显示器分辨率,则返回纯文本版本的页面:

<%If Session("screenres")="low" Then%>
This is the text version of the page
<%Else%>
This is the multimedia version of the page
<%End If%>移除 session 变量
contents 集合包含所有的 session 变量。

可通过 remove 方法来移除 session 变量。

在下面的例子中,假如 session 变量 "age" 的值小于 18,则移除 session 变量 "sale":

<%
If Session.Contents("age")<18 then
Session.Contents.Remove("sale")
End If
%>如需移除 session 中的所有变量,请使用 RemoveAll 方法:

<%
Session.Contents.RemoveAll()
%>遍历 contents 集合
contents 集合包含所有的 session 变量。可通过遍历 contents 集合,来查看其中存储的变量:

<%
Session("username")="Donald Duck"
Session("age")=50

dim i
For Each i in Session.Contents
Response.Write(i & "<br />")
Next
%>结果:

username
age如果需要了解 contents 集合中的项目数量,可使用 count 属性:

<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Session variables: " & j)
For i=1 to j
Response.Write(Session.Contents(i) & "<br />")
Next
%>结果:

Session variables: 2
Donald Duck
50遍历 StaticObjects 集合
可通过循环 StaticObjects 集合,来查看存储在 session 对象中所有对象的值:

<%
dim i
For Each i in Session.StaticObjects
Response.Write(i & "<br />")
Next
%>

提供一些方法。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求QQ牧场邀请开通~~
诛仙出师师德
现在有没有什么好听的伤感的歌曲啊?
北方粮油这个地址在什么地方,我要处理点事
Windows Defender Antivirus 定义更新 – KB2
进院学生会老师让我写一份简历,怎么写啊
名校课堂八年级下语文答案 急
请问在四川参加高考还是在湖南参加高考对我升
电脑出现乱码
CF的QBZ95好吗?
怎么给脖子美白阿?
有什么网游耐玩、免费、多人?
丁香食尚餐厅地址在什么地方,想过去办事
问问大邱庄的配货站??
双休日都没事情做。只能对着电脑!有什么事可
推荐资讯
那要这样主动?
注塑机一次打四个为什么有时只打三个
QQl农场里为什么总是显示操作失败
如何做一名交通协管员,如何做好一名就业协管
娜娜和张杰怎么样了
休息会话栏里,发上来的图片、文字是不是群发
什么是业务,征信的分类
中国供销合作社湟中县正丰农资有限责任公司在
哪个国家的甲流患者最多?我国有哪几个重症区
四门楼我想知道这个在什么地方
急!!!!!初中化学!!!!!
华东师范大学晨晖学者是博士后吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?