Session 对象
可以使用 Session 对象存储特定用户会话所需的信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。
Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。有关使用 Session 对象的详细信息,请参阅“ASP 应用程序”部分的“管理会话”。
注意 会话状态仅在支持 cookie 的浏览器中保留。
语法
Session.collection|property|method
集合
Contents 包含已用脚本命令添加到会话中的项目。
StaticObjects 包含通过 <OBJECT> 标记创建的并给定了会话作用域的对象。
属性
CodePage 将用于符号映射的代码页。
LCID 现场标识。
SessionID 返回用户的会话验证。
Timeout 应用程序会话状态的超时时限,以分钟为单位。
方法
Abandon 该方法破坏 Session 对象并释放其资源。
事件
global.asa 文件中声明下列事件的脚本。
Session_OnEnd
Session_OnStart
有关以上事件及 global.asa 文件的详细信息, 请参阅 Global.asa 参考.
注释
您可以在 Session 对象中存储值。存储在 Session 对象中的信息在会话及会话作用域内有效。下列脚本演示两种类型的变量的存储方式。
<%
Session("username") = "Janine"
Session("age") = 24
%>
但是,如果您将对象存储在 Session对象中,而且您使用 VBScript 作为主脚本语言。则必须使用关键字 Set。如下列脚本所示。
<% Set Session("Obj1") = Server.CreateObject("MyComponent.class1") %>
然后,您就可以在后面的 Web 页上调用 MyComponent.class1 揭示的方法和属性,其调用方法如下:
<% Session("Obj1").MyMethod %>
也可以通过展开该对象的本地副本并使用下列脚本来调用:
<%
Set MyLocalObj1 = Session("Obj1")
MyLocalObj1.MyObjMethod
%>
创建有会话作用域的对象的另一种方法是在 global.asa 文件中使用 <OBJECT> 标记。
但是不能在 Session 对象中存储内建对象。例如,下面每一行都将返回错误。
<%
Set Session("var1") = Session
Set Session("var2") = Request
Set Session("var3") = Response
Set Session("var4") = Server
Set Session("var5") = Application
%>
在将对象存储到 Session 对象之前,必须了解它使用的是哪一种线程模型。只有那些标记为“Both”的对象才能存储在没有锁定单线程会话的 Session 对象中。详细信息, 请参阅“创建 ASP 组件”中的“选择线程模型”。
若您将一个数组存储在 Session对象中,请不要直接更改存储在数组中的元素。例如,下列的脚本无法运行。
<% Session("StoredArray")(3) = "new value" %>
这是因为 Session对象是作为集合被实现的。数组元素 StoredArray(3) 未获得新的赋值。而此值将包含在 Application 对象集合中,并将覆盖此位置以前存储的任何信息。
我们极力建议您在将数组存储在 Session对象中时,在检索或改变数组中的对象前获取数组的一个副本。在对数组操作时,您应再将数组全部存储在 Session 对象中,这样您所做的任何改动将被存储下来。下列的脚本对此进行演示。
---file1.asp---
<%
'Creating and initializing the array
Dim MyArray()
Redim MyArray(5)
MyArray(0) = "hello"
MyArray(1) = "some other string"
'Storing the array in the Session object
Session("StoredArray") = MyArray
Response.Redirect("file2.asp")
%>
---file2.asp---
<%
'Retrieving the array from the Session Object
'and modifying its second element
LocalArray = Session("StoredArray")
LocalArray(1) = " there"
'printing out the string "hello there"
Response.Write(LocalArray(0)&LocalArray(1))
'Re-storing the array in the Session object
'This overwrites the values in StoredArray with the new values
Session("StoredArray") = LocalArray
%>
分享到:
相关推荐
在第二个 Session 中,我们使用相同的 ID 从数据库中获取了一个 Students 对象,并使用 merge 方法将第一个 Session 中的对象数据赋值给第二个 Session 中的对象。 需要注意的是,在使用 merge 方法时,我们需要...
本文将详细解释EL表达式的使用方法及其应用场景,帮助开发者更好地理解和掌握这一技术。 #### EL表达式的基础语法 EL表达式总是用大括号`{}`括起来,并且前面有一个美元符号`$`作为前缀,其基本形式为`${...
《学生信息管理系统第三篇——具体业务功能实现:登录及代码解说》 在开发学生信息管理系统的过程中,登录功能是至关重要的一步。它不仅是用户进入系统的入口,也是系统安全性的第一道防线。本文将深入探讨学生信息...
其中,有一种方法就是利用NFS来共享session,如果session量比较大并且所有的session文件都在同一个子目录下的话,那么可能会由此带来很严重的负载问题,甚至导致网站无法使用。本文就是对这个方案做一下详细的解说...
通过ORM,开发人员可以使用面向对象的方式操作数据库,而无需考虑底层SQL语句的具体实现。 在介绍Hibernate之前,我们首先来了解几种常见的ORM框架: 1. **Hibernate**:一种全面的ORM解决方案。 2. **EntityBean ...
当应用程序通过Session的save()、update()、saveOrUpdate()、get()或load()等方法操作数据时,如果目标对象尚未存在于缓存中,Hibernate将自动将其加载至缓存内。Session提供了evict()和clear()两个方法用于管理缓存...
这个完整的示例不仅提供了代码实践,还有相关的类解说,帮助开发者深入理解JavaMail的工作原理。以下是对标题和描述中涉及知识点的详细解释: 1. **JavaMail API**: JavaMail API是Java中处理邮件的标准接口,它...
**JSP(JavaServer Pages)** 是一种动态网页技术,由Sun ...以上是JSP语法大全的详细解说,涵盖其基本概念、核心元素以及与Servlet、MVC模式的关联。通过深入学习和实践,开发者可以更高效地创建动态Web应用程序。
在第二个会话中,`merge(str1)`将游离态的`str1`对象的状态合并到由`session2.get()`获取的持久化对象`str2`中。这导致`str2.getName()`的值改变,而`str1.getName()`的值不变,因为`str1`仍然是游离态。 综上所述...
- 可以使用Java的Session技术来管理用户的登录状态,确保一次只有一个会话活动。 3. **账户模型** - 创建BankAccount类,包含账户ID、用户名、余额等属性,以及deposit、withdraw、transfer等方法,模拟银行账户...
在上传数据到数据库时,使用`pandas`库可以简化操作,如`pandas.DataFrame.to_sql`方法可以直接将DataFrame对象写入SQLAlchemy兼容的数据库引擎。 总的来说,Python的异步爬虫结合适当的数据存储策略,可以高效地...
- 更新(UPDATE):调用对象的set方法修改属性,然后使用Session的update()方法保存变化。 - 删除(DELETE):使用Session的delete()方法移除对象。 6. **HQL(Hibernate Query Language)** - Hibernate 提供了自己...
6. 控制台会话 (Enter OS Session) - 直接进入操作系统进行操作。 7. 连接其他管理处理器 (CSP: Connect to Service Processor) - 用于多服务器管理。 访问MP卡的方法有多种: 1. 本地终端 - 使用物理终端或终端...
包括使用过滤器进行请求验证、避免使用不安全的HTTP方法、控制Session管理等。 十、持续学习与更新 Java安全不断演进,新的漏洞和攻击手段层出不穷。因此,开发者应定期学习最新的安全指南,及时更新库和框架,以...
以下是对文件中提及知识点的详细解说: 1. Servlet和JSP基础 在Web开发中,Servlet和JSP是Java EE的核心技术,用于创建动态Web应用。Servlet负责处理客户端请求并返回响应,而JSP主要用于展示数据。 2. Tomcat...
可能使用session和cookie来管理用户的登录状态,同时通过角色权限机制控制不同用户对新闻的操作权限。 5. **论文资料**: 论文部分会详细阐述项目的背景、需求分析、系统设计、技术选型、实现过程、测试结果和系统...
4. **DAO设计模式**:理解数据访问对象(DAO)的实现,如何使用Hibernate Session进行CRUD操作。 5. **Service层设计**:学习业务逻辑层的设计,如何将DAO与业务逻辑结合,实现松耦合的服务接口。 6. **Spring整合**...
总而言之,使用新浪微博API的OAuth认证发布微博实例,涵盖了OAuth认证的流程、新浪微博API的调用方法以及微博内容发布的操作。这些知识点不仅对想了解新浪微博API的开发者有帮助,也对希望在自己的应用中集成微博...
使用`find()`方法根据主键查找已存在的实体。 #### 3.6 新 Entity 创建新的实体实例,然后调用`persist()`将其持久化到数据库。 #### 3.7 删除 Entity `remove()`方法用于删除一个持久态的实体,它会被从数据库...