首页 后端开发 C#.Net教程 介绍ASP中Session对象的三种方法

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

May 18, 2017 am 11:36 AM

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

Session对象简介

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

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

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

Contents集合

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

<%
&#39;名字为username的Session集合中存储了一个“ZhangSan”字符串
Session.Contents("username") = "ZhangSan"
Dim UserName
&#39;读取Session中的数据,可以省略Contents&#39;
UserName = Session.Contents("username")和下面一样
UserName = Session("username")
Response.Write("<h2>" & UserName & "</h2>")
%>
登录后复制

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

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

...<h3>当前SessionID值为 <%=Session.SessionID%></h3><h3>Session中存储数据</h3><%&#39;利用 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("<br>")  NextEnd Sub&#39;For Each 遍历 Session.Contents 集合 Sub Traversal_E()  Dim x  For Each x In Session.Contents 
    Response.Write("Session(""" & x & """) = " & Session(x))
    Response.Write("<br>")  NextEnd Sub&#39;Session.Contents中存储了多个数据,如下Session.Contents("username") = "ZhangSan"Session.Contents("password") = "12345678"Session.Contents("date")="2015/08/14"Session.contents("author")="pchmonster"&#39;遍历 Contents 集合Traversal_E()%><hr><h3>删除名为username的数据</h3><%&#39;删除 username 数据Session.Contents.Remove("username")&#39;重新遍历 Contents 集合Traversal_P()%><hr><h3>删除所有的Session数据</h3><%&#39;删除所有的数据Session.Contents.RemoveAll()
Traversal_E()%>...
登录后复制

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

1.gif

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

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

代码如下:

<%&#39;Abandon的使用后,在当前页面仍可以访问Session集合,关闭页面或刷新后&#39;会使Session被删除,SessionID也就会改变Session.Abandon()&#39;首先我们要记录一下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
  &#39;如果是第一次运行该页面,则记录当前Sessio nID值  Response.Cookies("numVisits") = 1
  Response.Cookies("SID") = Session.SessionID%>
  <h3>您这是第一次访问该页面,当前页面的SessionID为</h3>
  <h2><%=Session.SessionID%></h2><%Else%>
  <hr>
  <h3>您这是第<%=numVisits%>次访问该页面,当前页面的SessioID为</h3>
  <h2><%=Session.SessionID%></h2>
  <h3>您第一次访问时的SessionID为</h3>
  <h2><%=Request.Cookies("SID")%></h2><%
  numVisits = numVisits + 1
  Response.Cookies("numVisits") = numVisitsEnd If%>
登录后复制

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

1.gif

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

1.gif

CodePage、SessionID、Timeout 属性

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

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

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

65001 表示 Unicode (UTF-8)

特别说明

<%@CODEPAGE="65001"%>作用于所有静态的字符串
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&#39;作用于所有动态输出的字符串%>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>CodePage、SessionID、TimeOut属性的应用</title>
</head>
<body>
<h3>当前页面使用的CodePage是:</h3>
<h2><%=Session.CodePage%></h2>
<hr>
<h3>当前页面的SessionID是:</h3>
<h2><%=Session.SessionID%></h2>
<hr>
<h3>当前页面Session默认超时时间为:</h3>
<h2><%=Session.Timeout%>分钟</h2>
</body>
</html>
登录后复制

运行后,效果如下:

1.gif

【相关推荐】

1. ASP免费视频教程

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

3. ASP session简单示例

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

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

以上是介绍ASP中Session对象的三种方法的详细内容。更多信息请关注PHP中文网其他相关文章!

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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

asp内置对象有哪些 asp内置对象有哪些 Nov 09, 2023 am 11:32 AM

asp内置对象有Request、Response、Session、Application、Server、Session.Contents、Application.Contents、Server.CreateObject、Server.MapPath、Server.Execute、Server.Transfer等。详细介绍:1、Request:表示HTTP请求对象等等。

asp扫描工具漏洞检测 asp扫描工具漏洞检测 Oct 13, 2023 am 10:45 AM

asp扫描工具漏洞检测:1、选择合适的扫描工具;2、在扫描工具中配置扫描目标;3、根据需要,配置扫描选项;4、在配置完成后,启动扫描工具开始扫描;5、扫描工具将生成一个报告,列出检测到的漏洞和安全问题;6、根据报告中的建议,修复检测到的漏洞和安全问题;7、在修复漏洞后,重新运行扫描工具,以确保漏洞已经被成功修复。

asp开发工具有哪些 asp开发工具有哪些 Oct 23, 2023 am 11:02 AM

asp开发工具有Visual Studio、Dreamweaver、FrontPage、EditPlus、UltraEdit、SQL Server Management Studio、RAD Studio、Delphi、Asp.NET和Oracle SQL Developer。

asp怎么手动漏洞检测 asp怎么手动漏洞检测 Oct 13, 2023 am 10:49 AM

asp手动检测漏洞:1、检查ASP应用程序对用户输入的验证和过滤机制;2、检查ASP应用程序对输出数据的编码和过滤机制;3、检查ASP应用程序的认证和会话管理机制;4、检查ASP应用程序对文件和目录的权限控制;5、检查ASP应用程序对错误的处理方式;6、检查ASP应用程序对数据库的安全性;7、检查ASP应用程序的配置文件和服务器配置。

asp漏洞检测有哪些方法 asp漏洞检测有哪些方法 Oct 13, 2023 am 10:42 AM

方法有:1、使用专门的漏洞扫描工具;2、手动测试来发现和验证ASP应用程序中的漏洞;3、进行安全审计,检查ASP应用程序的代码和配置文件;4、使用漏洞利用框架;5、对ASP应用程序的代码进行审查。

asp如何连接access数据库 asp如何连接access数据库 Oct 18, 2023 am 11:33 AM

连接的方法:1、使用ADO连接数据库;2、使用DSN连接数据库;3、使用连接字符串连接数据库。

由于 iPhone 13 推动创纪录的收入,iPhone 平均售价上涨 14% 由于 iPhone 13 推动创纪录的收入,iPhone 平均售价上涨 14% Apr 14, 2023 pm 03:22 PM

iPhone平均售价(ASP)去年实现两位数增长,同比增长14%。iPhone13的流行是关键驱动因素,帮助推动全球智能手机市场整体创下$448B的年收入记录。尽管零部件短缺,智能手机市场仍同比增长7%,其中苹果占据了迄今为止最大的份额……市场情报公司Counterpoint今天发布了最新估计。根据Counterpoint的MarketMonitorService的最新研究,2021年全球智能手机市场收入超过4480亿美元。即使组件短缺和COVID-19限制继续扰乱全球供

asp安全审计漏洞检测怎么做 asp安全审计漏洞检测怎么做 Oct 13, 2023 am 10:54 AM

asp安全审计漏洞检测步骤:1、收集有关ASP应用程序的相关信息;2、仔细分析ASP应用程序的源代码;3、检查ASP应用程序对用户输入的验证和过滤机制;4、检查应用程序对输出数据的编码和过滤机制;5、检查应用程序的认证和会话管理机制;6、检查应用程序对文件和目录的权限控制;7、检查应用程序对错误的处理方式;8、检查应用程序的配置文件和服务器配置;9、修复漏洞。

See all articles