Session对象
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HTTP协议本身是无状态的,这与HTTP协议本来的 协议本身是无状态的,这与 协议本身是无状态的 协议本来的 目的是相符的, 目的是相符的,客户端只需要简单的向服务器请求下 载某些文件, 载某些文件,无论是客户端还是服务器都没有必要纪 录彼此过去的行为,每一次请求之间都是独立的, 录彼此过去的行为,每一次请求之间都是独立的,好 比一个顾客和一个自动售货机或者一个普通的( 比一个顾客和一个自动售货机或者一个普通的(非会 员制)大卖场之间的关系一样。 员制)大卖场之间的关系一样。 然而聪明(或者贪心?) ?)的人们很快发现如果能够提 然而聪明(或者贪心?)的人们很快发现如果能够提 供一些按需生成的动态信息会使web变得更加有用, 变得更加有用, 供一些按需生成的动态信息会使 变得更加有用 其中cookie的作用就是为了解决 的作用就是为了解决HTTP协议无状态的 其中 的作用就是为了解决 协议无状态的 缺陷所作出的努力。至于Session机制则是又一种在客 缺陷所作出的努力。至于 机制则是又一种在客 户端与服务器之间保持状态的解决方案
为什么要用Session对象? 为什么要用 对象? 对象
HTTP协议是一种无状态(stateless)的协议,利用 协议是一种无状态( 协议是一种无状态 )的协议, HTTP协议无法跟踪用户。从网站的角度看,每一个 协议无法跟踪用户。 协议无法跟踪用户 从网站的角度看, 新的请求都是单独存在的。 新的请求都是单独存在的。当服务器完成用户的请求 服务器将不能再继续保持与该用户浏览器的连接。 后,服务器将不能再继续保持与该用户浏览器的连接。 当用户在Web站点的多个页面间切换时,根本无法知 站点的多个页面间切换时, 当用户在 站点的多个页面间切换时 道用户的相关信息。 道用户的相关信息。 Session的引用就是为了弥补这个缺陷。当用户在Web 的引用就是为了弥补这个缺陷。当用户在 的引用就是为了弥补这个缺陷 站点的多个页面间切换时,利用Session可以保存该用 站点的多个页面间切换时,利用 可以保存该用 户的一些有用信息, 户的一些有用信息,网站可以利用这些信息获得该用 户在网站的活动情况
限制未登陆用户对页的访问 记录用户的浏览路径
6.5.2 返回当前会话的唯一标志
在创建会话时, 在创建会话时,服务器会为每一个会 话生成一个单独的标识,使用Session 话生成一个单独的标识,使用 对象的SessionID属性可以返回当前会 属性可以返回当前会 对象的 属性 话的唯一标志符, 话的唯一标志符,即返回用户的会话 标识。 标识。 语法: 语法: Session.SessionID
Session变量所保存的信息只能用于单个用户 变量所保存的信息只能用于单个用户 一个用户访问网页所建立的Session变量,别人是看不 一个用户访问网页所建立的 变量, 变量 到的。 到的。
主要内容
Session对象概述 对象概述 创建和访问Session对象 创建和访问 对象 返回SessionID 返回 设定Session的生命期 设定 的生命期 释放Session 释放 Session的应用举例 的应用举例
• Session.Contents("变量名 变量名") 变量名 • Session ("变量名 变量名") 变量名
遍历Session.Contents集合的方法 遍历 集合的方法 SessionCount.asp
主要内容
Session对象概述 对象概述 创建和访问Session对象 创建和访问 对象 返回SessionID 返回 设定Session的生命期 设定 的生命期 释放Session 释放 Session的应用举例 的应用举例
SessionID用法示例 用法示例
SessionID.asp源自这个用户的自动编号为<%=Session.SessionID%> 这个用户的自动编号为
SessionID与Session的生命期 与 的生命期
打开一个新窗口会使SessionId值改变,因 值改变, 打开一个新窗口会使 值改变 为服务器会认为有一个新的用户在访问 刷新页面不会改变SessionId的值,相当于 的值, 刷新页面不会改变 的值 同一个用户在网站内页面之间跳转, 同一个用户在网站内页面之间跳转,所以 仍然是同一个SessionID 仍然是同一个
test5_3.asp test5_4.asp
Session.Contents集合 集合
Session对象也有两个集合:Contents集合和 对象也有两个集合: 对象也有两个集合 集合和 StaticObjects集合。其中,Contents集合保存所有非 集合。 集合 其中, 集合保存所有非 对象的Session变量,而StaticObjects集合则保存所有 变量, 对象的 变量 集合则保存所有 对象变量。 的Session对象变量。 对象变量 (1) Contents集合 集合 Contents集合是使用 集合是使用Session对象定义的在 对象定义的在ASP应用 集合是使用 对象定义的在 应用 程序中的一组变量。这些变量的作用域为用户层, 程序中的一组变量。这些变量的作用域为用户层,并 且在整个ASP应用程序都是可用的。这是 应用程序都是可用的。 且在整个 应用程序都是可用的 这是Session对象 对象 默认的集合,因此下述两种格式是等价的: 默认的集合,因此下述两种格式是等价的:
Session和Cookies的比较 和 的比较
Session
Cookies
相似点
功能 存储或跟踪用户信息, 存储或跟踪用户信息,在整个站 点所有页面都可以访问
不同点
建立方式 存储位置 每次访问网页时 需要通过代码建 立 自动建立 服务器端 客户端
不同客户拥有各自的Session对象 不同客户拥有各自的 对象
Session 对象用来为每个来访者存储独立的数据或特 定的客户信息。 定的客户信息。如果当前有若干个客户连线到某一个 站点的应用程序, 站点的应用程序,每一个客户还各自拥有一个独立的 Session对象。 对象。 对象
服务器会为每个用户建立一个Session 服务器会为每个用户建立一个
服务器会为每个用户建立一个Session 服务器会为每个用户建立一个
Session与Cookies的区别 与 的区别 一家奶茶店有喝5杯奶茶免费赠一杯奶茶的优惠 一家奶茶店有喝 杯奶茶免费赠一杯奶茶的优惠
发给顾客一张卡片,上面记录着消费的数量, 发给顾客一张卡片,上面记录着消费的数量,一般还 有个有效期限。每次消费时,如果顾客出示这张卡片, 有个有效期限。每次消费时,如果顾客出示这张卡片, 则此次消费就会与以前或以后的消费相联系起来。 则此次消费就会与以前或以后的消费相联系起来。这 种做法就是在客户端保持状态(Cookies) 种做法就是在客户端保持状态( ) 发给顾客一张会员卡, 发给顾客一张会员卡,除了卡号之外什么信息也不纪 每次消费时,如果顾客出示该卡片, 录,每次消费时,如果顾客出示该卡片,则店员在店 里的纪录本上找到这个卡号对应的纪录添加一些消费 信息。这种做法就是在服务器端保持状态( 信息。这种做法就是在服务器端保持状态(Session) )
Session对象 Session对象
唐 四 薪
主要内容
Session对象概述 对象概述 创建和访问Session对象 创建和访问 对象 返回SessionID 返回 设定Session的生命期 设定 的生命期 释放Session 释放 Session的应用举例 的应用举例
限制未登陆用户对页的访问 记录用户的浏览路径
限制未登陆用户对页的访问 记录用户的浏览路径
创建和访问Session变量 创建和访问 变量 格式: 格式: Session(“名字”)=变量 字符串 名字” 变量 变量/字符串 名字 例如: 例如: <% Session(“user_name”)=hisname Session(“age”)=20 Session(“college”)=“上海大学” 上海大学” 上海大学 %> 访问Session变量 访问 变量 Session(“名字 名字") 名字
Session的创建过程 的创建过程 当用户请求ASP应用程序的任意一个页面时,若 应用程序的任意一个页面时, 当用户请求 应用程序的任意一个页面时 用户尚未建立Session对象,服务器端就会自动创 对象, 用户尚未建立 对象 建一个Session对象,并指定一个唯一的 对象, 建一个 对象 并指定一个唯一的Session ID, , 这个ID只允许此 只允许此Session ID的拥有者使用,不同的 的拥有者使用, 这个 只允许此 的拥有者使用 用户的Session存储着各自特定的信息,这将有利 存储着各自特定的信息, 用户的 存储着各自特定的信息 于服务器对用户身份的鉴别,从而实现Web页面 于服务器对用户身份的鉴别,从而实现 页面 的个性化。 的个性化。
并将该SessionID回送客户端浏览器,而浏览器则将该 并将该 回送客户端浏览器, 回送客户端浏览器 SessionID保存在 保存在Cookies中。当客户端再次向服务器 保存在 中 发出HTTP请求时。ASP检查申请表头的该 请求时。 检查申请表头的该SessionID, 发出 请求时 检查申请表头的该 , 并回应相应该SessionID的该 的该Session信息。 信息。 并回应相应该 的该 信息
Session是什么 是什么
回忆上网的过程
使用Session对象可以存储特定用户会话所需 对象可以存储特定用户会话所需 使用 的信息。这样,当用户在应用程序的Web页之间 的信息。这样,当用户在应用程序的 页之间 跳转时,存储在Session对象中的变量将不会丢失, 对象中的变量将不会丢失, 跳转时,存储在 对象中的变量将不会丢失 而是在整个用户会话中一直存在下去。 而是在整个用户会话中一直存在下去。在绝大多 数情况下,可以使用Session变量作为全局变量, 变量作为全局变量, 数情况下,可以使用 变量作为全局变量 用于在该会话的所有页面中共享信息。 用于在该会话的所有页面中共享信息。当用户请 求来自应用程序的Web页时,如果该用户还没有 页时, 求来自应用程序的 页时 会话, 服务器将自动创建一个Session对象。 对象。 会话,则Web服务器将自动创建一个 服务器将自动创建一个 对象 当会话过期或被放弃后,服务器将终止该会话。 当会话过期或被放弃后,服务器将终止该会话。 Session对象记载某一特定的客户信息,不同 对象记载某一特定的客户信息, 对象记载某一特定的客户信息 的客户用不同的Session对象来记载 的客户用不同的 对象来记载
保存数组信息的语法: 保存数组信息的语法: Session(“Session数组”)=数组变量 数组” 数组变量 数组 获取数组Session信息的语法: 信息的语法: 获取数组 信息的语法 a=Session(“Session数组”) 数组” 数组
Session保存数组信息示例 保存数组信息示例
Session用法示例 用法示例
test5_1.asp 创建Session变量 创建 变量 test5_2.asp 访问Session变量 访问 变量
用Session保存数组信息 保存数组信息
Session存储数组和存储简单信息基本上是 存储数组和存储简单信息基本上是 一样的,只不过要记住。 一样的,只不过要记住。Session把传入的 把传入的 数组当成一个整体看待, 数组当成一个整体看待,只能把一个数组 整体存入取出。 整体存入取出。
主要内容
Session对象概述 对象概述 创建和访问Session对象 创建和访问 对象 返回SessionID 返回 设定Session的生命期 设定 的生命期 释放Session 释放 Session的应用举例 的应用举例
限制未登陆用户对页的访问 记录用户的浏览路径
理解Session的生命期 的生命期 理解