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

如何取得所有的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 %>

分享到:
评论

相关推荐

    请问ASPX中如何读取SESSION变量

    ### ASPX中如何读取SESSION变量 在ASP.NET Web应用程序中,`Session`对象是非常重要的一个组成部分,它用于存储特定用户会话所需的属性及配置信息。`Session`对象中的数据只对当前用户可见,并且在用户浏览网站的...

    asp保持SESSION变量不过期

    要解决“asp的session变量过一段时间就会过期”的问题,我们可以采取以下几种策略来保持Session变量不过期: 1. **修改Session超时时间**:在ASP的Global.asa文件中,可以设置Session对象的Timeout属性,来延长...

    PHP创建和使用session cookie变量

    或者,可以彻底清除所有 Session 变量: ```php $_SESSION = array(); ``` 最后,可以通过调用 `session_destroy()` 函数来销毁整个 Session: ```php session_destroy(); ``` 这将清除 Session ID 并结束当前 ...

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

    然而,对于初学者来说,理解和正确使用Session变量可能会遇到一些挑战。本文将深入探讨在PHP中存储Session变量时常见的问题和解决方案。 问题1:直接向`$_SESSION`数组中写入值 在PHP中,我们使用`$_SESSION`全局...

    PHP的session基础

    但在此之前,记得先调用`session_unset()`以释放所有Session变量。 ```php session_unset(); // 删除所有Session变量 session_destroy(); // 终止Session ?&gt; ``` ### 6. Session在用户登录中的应用 在用户登录...

    Session用法

    4. **清空所有Session变量**: - 使用`Session.Clear();`来清除当前会话中的所有变量。 ```csharp // 清除所有Session变量 Session.Clear(); ``` 5. **Session生命周期管理**: - **设置有效期**:可以在应用...

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

    `session_destroy()` 函数用于完全结束当前会话,清除所有Session数据: ```php session_destroy(); ``` ### 5. **Session 函数** PHP 提供了一些与 Session 相关的其他函数: - `session_name()`:获取或设置...

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

    echo "传递的session变量var1的值为:" . $_SESSION['var1']; ?&gt; ``` 3. **使用自定义Session管理**:如果不想依赖Cookie或URL传输,还可以选择使用自定义的方法来存储和恢复Session ID,如存储在文件或数据库中...

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

    它们分为两类:全局(global)变量和会话(session)变量,每种类型都有其特定的用途和设置方式。 1. **全局变量**: 全局变量对整个MySQL服务器实例生效,它们的更改会影响到后续创建的所有新的连接或会话。有两...

    h函数session.zip_session

    // 清空所有session变量 $_SESSION = array(); ``` ### 四、session的配置和优化 1. **session配置**:可以通过`session_set_save_handler()`函数自定义session的存储机制,例如使用数据库或文件系统。还可以...

    PHP中session变量的销毁

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

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

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

    session session session szsessdifn

    "szsessdifn"可能是某种特定的Session变量名或函数,但在这里没有足够的上下文来详细解释。 当用户首次访问网站时,服务器会为该用户创建一个唯一的Session ID,并将其存储在服务器的内存中。这个ID随后通过Cookie...

    php变量直接访问get,post,session,server值

    SESSION变量允许我们在多个页面之间存储用户状态信息。当用户登录后,我们可以设置`$_SESSION['username'] = 'John'`,然后在任何页面上,只要session还在有效期内,都可以通过`$_SESSION['username']`获取用户信息...

    php session登录

    当用户点击注销按钮时,清除所有与当前用户相关的Session变量,然后重定向回登录页面: ```php session_unset(); session_destroy(); header("Location: login.php"); exit; ``` 9. **安全注意事项**: - ...

    php清除session

    `session_unset()`函数会清除所有session变量,而`session_destroy()`函数则会结束当前session并删除session数据。示例如下: ```php session_start(); // 清除session变量 session_unset(); // 销毁session ...

    php里session的用法.doc

    10. `session_unset()`:这个函数会删除所有已注册的Session变量,但它不会结束Session。与`session_destroy()`不同,`session_unset()`只是清空变量,不会影响Session本身。 在实际开发中,Session通常用于处理...

    PHP—Session.docx

    - **删除Session变量**: 使用`unset()`函数可以清除单个Session变量: ```php unset($_SESSION['views']); ?&gt; ``` - **销毁Session**: `session_destroy()`函数用于完全结束一个会话,清空所有Session数据: ```...

    PHP中session全面教程

    // 清除所有Session变量 session_destroy(); // 销毁Session ``` #### 三、Session与Cookie的关系 Session依赖于Cookie来传递Session ID,这是Session正常工作的基础。 **3.1 Cookie的作用** Cookie是一种小型...

Global site tag (gtag.js) - Google Analytics