论文部分内容阅读
[摘 要] 阐述了Session对象的作用及应用方法,指出了Session对象的特点,并在此基础上给出了Session对象的几个应用实例。最后对Session对象的局限性作出了分析。
[关键词] ASP对象 ASP程序设计 Session对象
ASP是目前广泛使用的动态网页制作技术,很多电子商务网站都使用ASP技术进行开发。在电子商务网站开发和运行中,防止非法用户登录,保存登录用户信息和用户购物信息,在网站的各页间共享信息,是网站必须具备的功能。这些功能可以通过ASP的Session对象和Session数组实现。
本文结合实例,介绍利用Session对象在网站开发中保存、传递登录用户信息以及利用Session数组同时保存、传递多个信息的方法。
一、Session对象
1.Session对象的作用
Session对象是ASP的内置对象之一,负责记载单个用户的信息。不同用户的信息用不同的Session对象记载。Session对象最大的特点是,Session一旦被创建,网站中各页都可以读取它。Session对象又称为会话级对象,当一个用户访问网站时,即启动了一个Session对象,即使该用户在网站的各页间跳转时,该Session信息一直存在,网站的任何一个页面都可以读取它,直至该用户离开网站。
Session对象有有效期,一般为20分钟。当用户离开网站或在Session有效期内不再点击网站的任何内容时,该Session对象会自动被删除。
2. Session对象的创建与读取
可以把登录用户的用户名、密码等信息存储在Session中。创建Session的语句为:Session("Session名字")=变量或字符串信息。读取Sessi on信息的语句为:变量名=Session("Session名字")。
Session数组的创建和读取与简单变量基本上是一样的,不同的是一般的Session变量只能存储一个数据,而Session数组能够存储多个数据。Session数组当成一个整体看待,只能把一个数组整体存入或取出。
二、Session对象应用实例
1.利用Session对象防止非法用户访问并在网站内各页间传递、保持用户信息
在互联网的搜索引擎中,输入查询关键词,便会找到包含该关键词的若干网页,点击即可进入,这对网站的安全构成了威胁。网站可以利用Session对象,控制用户必须先登录,登录成功后才能访问其他网页。控制的方法是在其他网页的开头加上一段程序:
<%
If Session("User_Name")= ""then '若Session("User_Name")为空,则表示用户没有登录过
Response.Redirect "Login.asp" '直接转入登录页(Login.asp)
End
%>
如果用户在登录页登录了,则用<% Session("User_Name")="用户名" %>语句创建名为“User_Name”的Session,将用户名存入。登录页Login.asp主要代码如下:
'用户要填写的登录表单,略
<%
If Request.Form("User_Name")<>"" Then '若用户填写了用户名,则
Session("User_Name")=Request.Form("User_Name") '将用户名存入名为User_Name的Session变量中
End If
%>
存储用户名的Session建立后,用户再访问其他页时,其他页都可以通过读取Session("User_Name")的值获得该用户信息。
2.利用Session数组在页间传递、保持用户购物信息
可以利用Session对象具有的“一旦创建,各页共享”的特点,以及Session数组可以一次传递多个变量的特点,为网站制作一个简易购物车。将用户在浏览商品页选择的商品名称及数量,传递到“查看购物篮”页。以下给出制作简易购物车实例。
(1)供用户浏览、选择商品的页面程序SelectProduct1.asp部分代码如下:
<%
dim ar1(2) '声明一个数组ar1
dim ar2(2)
……
If Request("b1").Count > 0 Then '若表单项b1不空,则用户选择了该产品
ar1(0)=Request("b1") '将获取的商品名称存入ar1数组的第一个元素中
ar1(1)=Request("n1") '将获取的商品数量存入ar1数组的第二个元素中
Session("array_s1") = ar1 '将数组ar1存入名为array_s1的Session数组中
Session("bz1")=1 '将1存入名为bz1的Session中,做标记用,表示数组不空
End If
……'其他商品依次类推
%>
请选择商品,每件100元:
<Form Method="Post" Action=" SelectProduct1.asp">
<P><Input Type="CheckBox" Name="b1" Value="篮球">篮球
购买数量<Input Type="input" Name="n1" Value="1">'n1为接受数量的文本框,默认值为1
<!——其他商品依次类推——>
<P><Input Type="Submit" Value="提交" Name="x1">
<A Href="SelectProduct2.asp">购买其他商品</A>
<A Href="Display.asp">查看购物车</A></P>
</Form>
本页中,若用户选择了一个商品,则通过Request对象分别获取商品名称和购买数量,存入数组,再将该数组整体存入Session中,以便在“查看购物车”页中将所选商品名称和购买数量读出来。
(2)其它商品页程序同SelectProduct1.asp。
(3)“查看购物车”页程序Display.asp如下:
<%
If Session("bz1")=1 Then
ar1=Session("array_s1") '将Session数组array_s1整体取出,写入名为ar1的数组变量中
Response.Write ar1(0)+" "+ar1(1)+"<Br>" '将数组中各元素输出,即显示商品名称和购买数量
End If
…… '其他商品依次类推
%>
三、Session对象与隐藏域的综合应用
隐藏域是表单中类型为Hidden的文本框,该文本框在页面上不可见。表单提交时,隐藏域的值一并被提交。利用的这个特点,可以将登录者的用户名,即Session("User_Name")的值,作为隐藏域的值,在用户提交购物表单时一并提交。隐藏域定义与赋值关键代码如下:
<Input Type="Hidden" Name="user_name" Value="<%= Session("User_Name")%>"
四、使用Session对象时应注意的问题
Session对象虽然功能非常强大,但也有一定的局限性,使用时应充分注意。
Session的使用要借助于客户端。若某客户端机器出现问题,则网站对该用户的记载中断。同时,服务器与客户端的每次连接时要占用网络资源,传递的数据量较多时将影响网速。
五、总结
Session对象在网站开发中起着非常重要的作用。利用Session对象和Session数组,在网站各页间可以一次传递单个或多个数据。Session对象占用大量的网站资源,应注意使用后尽快删除。合理地使用Session,将有助于提高网站开发的效率。
参考文献:
[1]菜翠平 尚俊杰:网络程序设计ASP(第2版)[M].北京:清华大学出版社,北方交通大学出版社,2004年2月P73
[2]石志国 王志良 薛为民:ASP精解案例教程[M].北京:清华大学出版社,北方交通大学出版社,2004年1月P118
[3]唐 晏:ASP.net页面之间数据传递的实现[J].计算机应用研究,2006 Vol.23 No.5 P.228
[关键词] ASP对象 ASP程序设计 Session对象
ASP是目前广泛使用的动态网页制作技术,很多电子商务网站都使用ASP技术进行开发。在电子商务网站开发和运行中,防止非法用户登录,保存登录用户信息和用户购物信息,在网站的各页间共享信息,是网站必须具备的功能。这些功能可以通过ASP的Session对象和Session数组实现。
本文结合实例,介绍利用Session对象在网站开发中保存、传递登录用户信息以及利用Session数组同时保存、传递多个信息的方法。
一、Session对象
1.Session对象的作用
Session对象是ASP的内置对象之一,负责记载单个用户的信息。不同用户的信息用不同的Session对象记载。Session对象最大的特点是,Session一旦被创建,网站中各页都可以读取它。Session对象又称为会话级对象,当一个用户访问网站时,即启动了一个Session对象,即使该用户在网站的各页间跳转时,该Session信息一直存在,网站的任何一个页面都可以读取它,直至该用户离开网站。
Session对象有有效期,一般为20分钟。当用户离开网站或在Session有效期内不再点击网站的任何内容时,该Session对象会自动被删除。
2. Session对象的创建与读取
可以把登录用户的用户名、密码等信息存储在Session中。创建Session的语句为:Session("Session名字")=变量或字符串信息。读取Sessi on信息的语句为:变量名=Session("Session名字")。
Session数组的创建和读取与简单变量基本上是一样的,不同的是一般的Session变量只能存储一个数据,而Session数组能够存储多个数据。Session数组当成一个整体看待,只能把一个数组整体存入或取出。
二、Session对象应用实例
1.利用Session对象防止非法用户访问并在网站内各页间传递、保持用户信息
在互联网的搜索引擎中,输入查询关键词,便会找到包含该关键词的若干网页,点击即可进入,这对网站的安全构成了威胁。网站可以利用Session对象,控制用户必须先登录,登录成功后才能访问其他网页。控制的方法是在其他网页的开头加上一段程序:
<%
If Session("User_Name")= ""then '若Session("User_Name")为空,则表示用户没有登录过
Response.Redirect "Login.asp" '直接转入登录页(Login.asp)
End
%>
如果用户在登录页登录了,则用<% Session("User_Name")="用户名" %>语句创建名为“User_Name”的Session,将用户名存入。登录页Login.asp主要代码如下:
'用户要填写的登录表单,略
<%
If Request.Form("User_Name")<>"" Then '若用户填写了用户名,则
Session("User_Name")=Request.Form("User_Name") '将用户名存入名为User_Name的Session变量中
End If
%>
存储用户名的Session建立后,用户再访问其他页时,其他页都可以通过读取Session("User_Name")的值获得该用户信息。
2.利用Session数组在页间传递、保持用户购物信息
可以利用Session对象具有的“一旦创建,各页共享”的特点,以及Session数组可以一次传递多个变量的特点,为网站制作一个简易购物车。将用户在浏览商品页选择的商品名称及数量,传递到“查看购物篮”页。以下给出制作简易购物车实例。
(1)供用户浏览、选择商品的页面程序SelectProduct1.asp部分代码如下:
<%
dim ar1(2) '声明一个数组ar1
dim ar2(2)
……
If Request("b1").Count > 0 Then '若表单项b1不空,则用户选择了该产品
ar1(0)=Request("b1") '将获取的商品名称存入ar1数组的第一个元素中
ar1(1)=Request("n1") '将获取的商品数量存入ar1数组的第二个元素中
Session("array_s1") = ar1 '将数组ar1存入名为array_s1的Session数组中
Session("bz1")=1 '将1存入名为bz1的Session中,做标记用,表示数组不空
End If
……'其他商品依次类推
%>
请选择商品,每件100元:
<Form Method="Post" Action=" SelectProduct1.asp">
<P><Input Type="CheckBox" Name="b1" Value="篮球">篮球
购买数量<Input Type="input" Name="n1" Value="1">'n1为接受数量的文本框,默认值为1
<!——其他商品依次类推——>
<P><Input Type="Submit" Value="提交" Name="x1">
<A Href="SelectProduct2.asp">购买其他商品</A>
<A Href="Display.asp">查看购物车</A></P>
</Form>
本页中,若用户选择了一个商品,则通过Request对象分别获取商品名称和购买数量,存入数组,再将该数组整体存入Session中,以便在“查看购物车”页中将所选商品名称和购买数量读出来。
(2)其它商品页程序同SelectProduct1.asp。
(3)“查看购物车”页程序Display.asp如下:
<%
If Session("bz1")=1 Then
ar1=Session("array_s1") '将Session数组array_s1整体取出,写入名为ar1的数组变量中
Response.Write ar1(0)+" "+ar1(1)+"<Br>" '将数组中各元素输出,即显示商品名称和购买数量
End If
…… '其他商品依次类推
%>
三、Session对象与隐藏域的综合应用
隐藏域是表单中类型为Hidden的文本框,该文本框在页面上不可见。表单提交时,隐藏域的值一并被提交。利用的这个特点,可以将登录者的用户名,即Session("User_Name")的值,作为隐藏域的值,在用户提交购物表单时一并提交。隐藏域定义与赋值关键代码如下:
<Input Type="Hidden" Name="user_name" Value="<%= Session("User_Name")%>"
四、使用Session对象时应注意的问题
Session对象虽然功能非常强大,但也有一定的局限性,使用时应充分注意。
Session的使用要借助于客户端。若某客户端机器出现问题,则网站对该用户的记载中断。同时,服务器与客户端的每次连接时要占用网络资源,传递的数据量较多时将影响网速。
五、总结
Session对象在网站开发中起着非常重要的作用。利用Session对象和Session数组,在网站各页间可以一次传递单个或多个数据。Session对象占用大量的网站资源,应注意使用后尽快删除。合理地使用Session,将有助于提高网站开发的效率。
参考文献:
[1]菜翠平 尚俊杰:网络程序设计ASP(第2版)[M].北京:清华大学出版社,北方交通大学出版社,2004年2月P73
[2]石志国 王志良 薛为民:ASP精解案例教程[M].北京:清华大学出版社,北方交通大学出版社,2004年1月P118
[3]唐 晏:ASP.net页面之间数据传递的实现[J].计算机应用研究,2006 Vol.23 No.5 P.228