0

0

介绍ASP中Session对象的三种方法

Y2J

Y2J

发布时间:2017-05-18 11:36:14

|

2403人浏览过

|

来源于php中文网

原创

在asp中,有两个内部对象可以进行一些信息存储,它们是 application 对象和 session 对象,其中 application 对象是对于整个应用程序期间而言的,它对于所有访问网站的用户来讲是共享的,而 session 是对于会话期间而言的,它仅对与当前用户存在。

Session对象简介

当您在计算机上操作某个应用程序时,您打开它,做些更改,然后关闭它,就很像一次对话(Session)。计算机知道您是谁,它清楚您在何时打开和关闭应用程序。然而,在因特网上问题出现了,由于HTTP地址无法保持状态,Web服务器并不知道您是谁以及您做了什么。

Session 对象的主要用途 是针对每个访问网站的用户来存储一些信息,例如,当用户登录后,我们可以在该用户的 Session 中存储信息来标识当前用户已经登录。

Session 的原理是这样的,当用户第一次访问网站时,IIS为这个用户分配了一个标识,这个标识是一列很长的随机字符串,这个随机字符串叫做SessionID,而后服务器将其发送给客户端时期保存在Cookies中,接下来用户再访问服务器上的其他页面时,服务器获得这个 SessionID,并从内存中获取和这个 SessionID 相关的数据,放在 Session对象的集合中。

Contents集合

我们可以在这个集合中存储当前用户的某些信息,例如下面的代码展示了如何存储和读取数据:

<%
'名字为username的Session集合中存储了一个“ZhangSan”字符串
Session.Contents("username") = "ZhangSan"
Dim UserName
'读取Session中的数据,可以省略Contents'
UserName = Session.Contents("username")和下面一样
UserName = Session("username")
Response.Write("

" & UserName & "

") %>

Session对象有三个方法(Contents.Remove、Contents.RemoveAll、Abandon),用来删除 Session 集合中的数据或放弃当前的 Session。

第一个例子(SessionContents.asp)我们将演示如何使用 Remove、RemoveAll方法,代码如下:

...

当前SessionID值为 <%=Session.SessionID%>

Session中存储数据

<%'利用 Contents.Count 遍历 Session 的过程Sub Traversal_P() Dim i For i = 1 To Session.Contents.Count Response.Write("Session(""" & Session.Contents.key(i) & """) = " & Session.Contents(i)) Response.Write("
") NextEnd Sub'For Each 遍历 Session.Contents 集合 Sub Traversal_E() Dim x For Each x In Session.Contents Response.Write("Session(""" & x & """) = " & Session(x)) Response.Write("
") NextEnd Sub'Session.Contents中存储了多个数据,如下Session.Contents("username") = "ZhangSan"Session.Contents("password") = "12345678"Session.Contents("date")="2015/08/14"Session.contents("author")="pchmonster"'遍历 Contents 集合Traversal_E()%>

删除名为username的数据

<%'删除 username 数据Session.Contents.Remove("username")'重新遍历 Contents 集合Traversal_P()%>

删除所有的Session数据

<%'删除所有的数据Session.Contents.RemoveAll() Traversal_E()%>...

上面的代码运行后显示如下:

1.gif

这些代码中演示了如何遍历Session.Contents集合的两种方法,请仔细看看。

第二个例子(SessionAbandon.asp)演示了 Abandon 方法的效果,通过演示,我们看出来 RemoveAll 方法和 Abandon 方法的区别在于 RemoveAll 仅仅删除了当前的集合,但是客户还是使用同一个 SessionID(第一个例子中 SessionID 一直保持不变化)。而 Abandon 方法调用后,在当前页面仍然可以访问 Session 集合,在关闭页面或者刷新页面后,之前的 Session 会被删除(本例子中 SessionID 会变化)。

代码如下:

<%'Abandon的使用后,在当前页面仍可以访问Session集合,关闭页面或刷新后'会使Session被删除,SessionID也就会改变Session.Abandon()'首先我们要记录一下SessionID的值,存放到Cookies中Dim numVisits, SID
Response.Cookies("numVisits").Expires = DateAdd("d", 10, Now)
Response.Cookies("SID").Expires = DateAdd("d", 10, Now)
SID = Request.Cookies("SID")
numVisits = Request.Cookies("numVisits")If numVisits = "" or SID = "" Then
  '如果是第一次运行该页面,则记录当前Sessio nID值  Response.Cookies("numVisits") = 1
  Response.Cookies("SID") = Session.SessionID%>
  

您这是第一次访问该页面,当前页面的SessionID为

<%=Session.SessionID%>

<%Else%>

您这是第<%=numVisits%>次访问该页面,当前页面的SessioID为

<%=Session.SessionID%>

您第一次访问时的SessionID为

<%=Request.Cookies("SID")%>

<% numVisits = numVisits + 1 Response.Cookies("numVisits") = numVisitsEnd If%>

第一次运行该页面,会先记录当前的 SessionID 到 Cookies 中,如下图:

1.gif

多次刷新该页面或重新打开后,因为 Abandon 方法,会使 Session 删除,SessionID 会一直改变,如下图:

1.gif

CodePage、SessionID、Timeout 属性

CodePage 属性定义了当前页面输出内容的字符集,这里的字符集以数字表示。例如

杰易CRM客户关系管理系统
杰易CRM客户关系管理系统

软件介绍 a.. 当今的市场压力迫使企业在提高产品质量和性能的同时,降低成本和缩短产品上市的时间。每个企业都在努力更新自己,包括其生产过程和产品,以满足这些需求。实现这些目标的三种方法是:业务处理再设计、新技术应用、与顾客形成战略联盟。 b.. 对所有的商业应用只有建立整体的IT体系结构,才能形成战略优势,才能确定企业的突破口。这种新的体系结构是以三层结构标准为基础的客户关系

下载

936 表示 Chinese Simplified (GB2312) 简体中文

950 表示 Chinese Traditional (Big5) 繁体中文

65001 表示 Unicode (UTF-8)

特别说明

作用于所有静态的字符串 
Response.CodePage, Session.CodePage 作用于所有动态输出的字符串 
Response.CodePage 作用范围只在于 a single response 
Session.CodePage 的作用范围却是在 all responses in a session

SessionID 属性可以获得当前用户的 SessionID,有时候在客户端浏览器不支持 Cookies 的情况下,你可以将 SessionID 附加在客户端的 QueryString 变量中,从而标识每一个客户端。

Timeout 属性用于设定客户的 Session 超时期。客户对于 SessionID 并不是长期占有的,在其一段时间内没有和服务器端进行任何交互后,服务器端将放弃该 Session。

下面的代码(SessionCST.asp)中将演示这个三个属性的使用方法,代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage = 65001'作用于所有动态输出的字符串%>




CodePage、SessionID、TimeOut属性的应用


当前页面使用的CodePage是:

<%=Session.CodePage%>


当前页面的SessionID是:

<%=Session.SessionID%>


当前页面Session默认超时时间为:

<%=Session.Timeout%>分钟

运行后,效果如下:

1.gif

【相关推荐】

1. ASP免费视频教程

2. 详解ASP中Session的使用技巧

3. ASP session简单示例

4. 关于ASP中session的详细介绍

5. 教你解决ASP session丢失的方法

相关文章

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

76

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

73

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

67

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

19

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ASP 教程
ASP 教程

共34课时 | 4.3万人学习

PHP课程
PHP课程

共137课时 | 10.5万人学习

ASP参考手册
ASP参考手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号