`
xcgh
  • 浏览: 75395 次
  • 来自: ...
社区版块
存档分类
最新评论

如何取得所有的Session变量

    博客分类:
  • asp
阅读更多

在程序调试中,有时候需要知道有多少Session变量在使用,她们的值如何?由于Session对象提供一个称为Contents的集合(Collection),我们可以通过For...Each循环来达到目标:

Dim strName, iLoop
For Each strName in Session.Contents
Response.Write strName & " - " & Session.Contents(strName)& "<BR>"
Next

一般情况下,上面的代码可以工作得很好。但当Session变量是一个对象或者数组时,打印的结果就不正确了。

这样我们修改代码如下:

'首先看看有多少Session变量在使用?

Response.Write "There are " & Session.Contents.Count & _
" Session variables<P>"
Dim strName, iLoop
'使用For Each循环察看Session.Contents
'如果Session变量是一个数组?
If IsArray(Session(strName)) then
'循环打印数组的每一个元素
For iLoop = LBound(Session(strName)) to UBound(Session(strName))
Response.Write strName & "(" & iLoop & ") - " & _
Session(strName)(iLoop) & "<BR>"
Next
Else
  '其他情况,就简单打印变量的值
Response.Write strName & " - " & Session.Contents(strName) & "<BR>"
End If
Next

Session变量有时候不能工作,为什么?
有很多可能性:
第一,如果客户端不允许cookie操作,session将失效。因为session是依赖于cookie的。
第二,session有失效时间的设定。缺省的设置是20分钟。你可以这样修改它:Web directory -> Properties -> Virtual directory -> Application settings -> Configuration -> App Options -> Session timeout
或者在ASP中,写上这样的代码:Session.timeout=60 。
第三,session是和具体的Web Application相关的。如果用户从/products/default.asp浏览到/jobs/default.asp,也可能造成session的重新创建。

怎么清除一个不再需要的session变量但不使session失效?
在ASP3.0中:
Session.Contents.Remove "变量名"
可以清除一个变量。
在ASP2.0中:
set session("变量名")=NULL
可以清除变量。
在ASP3.0中,
Session.Contents.RemoveAll
可以清除所有的session变量和session.abandon不同,上面的方法都不会使目前的session过期或者无效。

ASP页面顶端的<%@ ENABLESESSIONSTATE=True %>是什么意思?
IIS使用一种叫做Session跟踪的技术,来保证各个Session变量在每个页面是可用的。当用户访问某个ASP页面时候,IIS会首先为这个页面准备好各个Session变量,这当然会带来性能上的影响。(使用Session变量的代价总是很高的!)
如果你有100个页面,而只有5个页面用到了Session,那么,为了整体的性能,你只需要在那5个页面设置:
<%@ ENABLESESSIONSTATE=True %>
而其他页面设置为:
<%@ ENABLESESSIONSTATE=False %>

分享到:
评论

相关推荐

    PHP创建和使用session cookie变量

    //清空所有session变量 session_destroy();//清除会话ID // session end // cookie start setcookie(’user_id’,123);//创建一个cookie变量user_id=123 echo $_COOKIE['user_id'];//访问 cookie变量 和变通变量...

    asp保持SESSION变量不过期

    asp的session变量过一段时间就会过期,保持它的不过期

    请问ASPX中如何读取SESSION变量

    请问ASPX中如何读取SESSION变量! 值得下载看看!资源免费,大家分享!!

    MySQL设置global变量和session变量的两种方法详解

    主要介绍了MySQL设置global变量和session变量的两种方法,每种方法给大家介绍的非常详细 ,需要的朋友可以参考下

    PHP Session变量不能传送到下一页的解决方法

    下面我解释一下: Session储存于服务器端(默认以文件方式存储session),根据客户端提供的session id来得到用户的文件,取得变量的值,session id可以使用客户端的Cookie或者Http1.1协议的Query_String(就是访问的...

    PHP中session变量的销毁

    1.何为session?相当于一个客户端(可以是浏览器、app、...2.session变量的销毁程序代码&lt;?...session_destroy();?&gt; session_unset()释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对

    ASP所有的Session变量获取实现代码

    在程序调试中,有时候需要知道有多少Session变量在使用,她们的值如何?由于Session对象提供一个称为Contents的集合(Collection),我们可以通过For...Each循环来达到目标

    PHP程序设计-3期(KC016) 3.12.2存储session变量常见问题.docx

    PHP程序设计-3期(KC016) 3.12.2存储session变量常见问题.docx 学习资料 复习资料 教学资源

    PHP Session 变量的使用方法详解与实例代码

    在php中Session经常用来验证用户注册或登录之后的验证了,下面我来总结session变量的一些常用实例与用法介绍

    js中session的应用

    js中session的应用,在javascript中应用session,对页面前台全局变量有很好的应用

    PHP的session基础

    关于PHP的session的基本使用 认识session的工作原理 1启动session 2读写session的变量 3删除session变量 4session在用户登录中的应用

    在VSTS2010中对session变量进行关联

    该方法是手动进行设置,对于在VS2008中工具是进行自动关联session,在vs2005中需要手动进行设置Step1:找到传输session变量的上级页面点击右键选择【添加提取规则】图1然后在规则中选择【提取窗体字段】,然后输入...

    ThinkPHP的模版中调用session数据的方法

    ThinkPHP框架的模板中调用session数据的方法有很多,可以很据情况...5.在自定义函数库中,新建一个函数用来返回$_SESSION变量,然后在模板文件中使用{$变量命 | 函数名}来将函数返回的$_SESSION赋给模板中的一个变量 除

    在一个Workflow中传递Session参数或变量值

    如何在一个Workflow中传递Session参数或变量值

    实现PHP中session存储及删除变量

    Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。 但是session会话信息是临时的,在用户离开网站后就会被删除。如果需要永久储存信息,就需要把数据存储在数据库中。 那么下面我们就结合...

    persistent-session:流星的持久状态变量

    有用的用户会话作为Session变量的替代,此程序包公开了具有以下功能的UserSession变量: 您可以创建UserSession的不同实例来为变量命名空间,例如,每条路由1个命名空间所有变量都同步到服务器并存储在集合中,以便...

    基于session_unset与session_destroy的区别详解

    session_unset()释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的sessionidsession_destroy()删除当前用户对应的session文件以及释放sessionid,内存中的$_SESSION变量内容依然...

Global site tag (gtag.js) - Google Analytics