发新话题
打印

使用ASP的SESSION对象

使用ASP的SESSION对象

Session对象,前面我们已经提过了。他可以使不同的用户存储自己的信息,基本
的形式为:Session(“name”)=变量,每当你启动该程序一次,就创建了一个SES
SION对象, 两个不同的进程不能共享同一个Session变量(APPLICATION就可以)
,Session对象对 开发WEB应用起到了非常重要的作用。

来我们先看一下以下的例子吧! 点击这里测试一下。  

源代码如下: login.asp:  



     

  

  

  

姓名:  

密码:  

  



  

  

显示你的资料  

  

 

info.asp:  




  

  

  <
/HEAD>  

   

退出  

   

输入姓名和密码进行提交后,再按“显示你的资料”,便能进入下一页面显示你
的相关资料, 当你试图不进行提交,直接按“显示你的资料”,程序禁止你进入下
一界面,其实就是通 过以下的代码进行检测 if session("name"="" then Res
ponse.Redirect("login.asp" end if  

其意思是:如果 session("name"为空(也就是你不进行提交),就执行 Respo
nse.Redirect("login.asp") 语句,该语句就是返回login.asp.当你进行提交时,
session("name")就赋了值,兰色代码部分就是实现把你输入的名字和密码赋给s
ession("name") 和 session("pw"),session("name")不为空,就跳过 Response
.Redirect("login.asp") 语句, 直接显示内容。看到下面的“退出”了吧,如
果你不按退出,而直接返回到login界面,再按 “显示你的资料”,你仍然可以进
入下一界面,为什么呢?因为Session("name")并没有消失, 要使Session("nam
e")消失,只有两个方法:  

1.等待超时,Session预设超时(timeout)值为20分钟,你可以使用session.Time
out=60来改变他的 超时值,也就是说,如果你不改变超时值,session("name")
将会在最后request请求后20分钟,将 会为结束(消失),当你再按“显示你的资
料”时,就无法进去了。  

2.第二种方法是使用Session的Abandon()方法,该方法就是通知服务器结束Sess
ion对象,因为 服务器无法判断你的BROWSER什么时候结束Session对象,所以必
须通过该方法通知服务器结束 session对象。本文就是使用该方法在“退出”时
结束该Session对象,也就是session("name")的值 就不存在了。同样,当你再按
“显示你的资料”时,也就无法进去了。 最后,当你成果提交后,我们就使用以
下两句语句打印Session("name")和 Session("pw"): Response.Write("你的姓
名:" & session("name") & "") Response.Write("你的密码:" & sessio
n("pw") & "") Session对象可以让你在同一个进程中跨页面的使用任何变量
。当然,你也可以使用Session对象来 存储对象,如: set session("obj")=se
rver.createobject("progid") 如果你要频繁地使用创建的对象,使用以上语句
就可以提高效率了。 但值得注意的是,以上的语句随时存在超时问题(当你试图
使用一个不存在的对象时,你能想象到 什么样的后果吗?),所以使用session
对象的时候要小心谨慎呀。  

注意:Response.Redirect("login.asp")语句必须放在程序的最前面,否则,就
会提示错误。

大家灌啊

TOP

相当的不错哦!session的主要功能都有了。。。。
不过说一点,session占用服务器资源,如果流量过大就会增加服务器的负担,这就是很多地方提倡大家用cookie的原因!具体那个好则要看具体的环境了,不懂就问问高手了:)

TOP

COOKIE还没发呢
大家灌啊

TOP

发个这两个东西的比较的文章吧!

TOP

这个好像还没看到
大家灌啊

TOP

发新话题