`

session的用法具体解说

 
阅读更多
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
%>
分享到:
评论

相关推荐

    Hibernate中的merge使用详情解说

    在第二个 Session 中,我们使用相同的 ID 从数据库中获取了一个 Students 对象,并使用 merge 方法将第一个 Session 中的对象数据赋值给第二个 Session 中的对象。 需要注意的是,在使用 merge 方法时,我们需要...

    el表达式用法部分解说

    本文将详细解释EL表达式的使用方法及其应用场景,帮助开发者更好地理解和掌握这一技术。 #### EL表达式的基础语法 EL表达式总是用大括号`{}`括起来,并且前面有一个美元符号`$`作为前缀,其基本形式为`${...

    [学生信息管理系统第三篇]具体业务功能实现--登录及代码解说

    《学生信息管理系统第三篇——具体业务功能实现:登录及代码解说》 在开发学生信息管理系统的过程中,登录功能是至关重要的一步。它不仅是用户进入系统的入口,也是系统安全性的第一道防线。本文将深入探讨学生信息...

    PHP实现多服务器session共享之NFS共享的方法

    其中,有一种方法就是利用NFS来共享session,如果session量比较大并且所有的session文件都在同一个子目录下的话,那么可能会由此带来很严重的负载问题,甚至导致网站无法使用。本文就是对这个方案做一下详细的解说...

    hibernate解说

    通过ORM,开发人员可以使用面向对象的方式操作数据库,而无需考虑底层SQL语句的具体实现。 在介绍Hibernate之前,我们首先来了解几种常见的ORM框架: 1. **Hibernate**:一种全面的ORM解决方案。 2. **EntityBean ...

    Hibernate缓存机制解说

    当应用程序通过Session的save()、update()、saveOrUpdate()、get()或load()等方法操作数据时,如果目标对象尚未存在于缓存中,Hibernate将自动将其加载至缓存内。Session提供了evict()和clear()两个方法用于管理缓存...

    JavaMail完整示例及相关类解说

    这个完整的示例不仅提供了代码实践,还有相关的类解说,帮助开发者深入理解JavaMail的工作原理。以下是对标题和描述中涉及知识点的详细解释: 1. **JavaMail API**: JavaMail API是Java中处理邮件的标准接口,它...

    jsp 语法大全详细解说

    **JSP(JavaServer Pages)** 是一种动态网页技术,由Sun ...以上是JSP语法大全的详细解说,涵盖其基本概念、核心元素以及与Servlet、MVC模式的关联。通过深入学习和实践,开发者可以更高效地创建动态Web应用程序。

    Hibernate中的merge使用详情解说.docx

    在第二个会话中,`merge(str1)`将游离态的`str1`对象的状态合并到由`session2.get()`获取的持久化对象`str2`中。这导致`str2.getName()`的值改变,而`str1.getName()`的值不变,因为`str1`仍然是游离态。 综上所述...

    基于java的ATM模拟银行交易系统详细解说

    - 可以使用Java的Session技术来管理用户的登录状态,确保一次只有一个会话活动。 3. **账户模型** - 创建BankAccount类,包含账户ID、用户名、余额等属性,以及deposit、withdraw、transfer等方法,模拟银行账户...

    python异步爬取各大网站数据【超详细解说】

    在上传数据到数据库时,使用`pandas`库可以简化操作,如`pandas.DataFrame.to_sql`方法可以直接将DataFrame对象写入SQLAlchemy兼容的数据库引擎。 总的来说,Python的异步爬虫结合适当的数据存储策略,可以高效地...

    Hibernate手把手教学

    - 更新(UPDATE):调用对象的set方法修改属性,然后使用Session的update()方法保存变化。 - 删除(DELETE):使用Session的delete()方法移除对象。 6. **HQL(Hibernate Query Language)** - Hibernate 提供了自己...

    HP_rx_Se_MP卡_配置

    6. 控制台会话 (Enter OS Session) - 直接进入操作系统进行操作。 7. 连接其他管理处理器 (CSP: Connect to Service Processor) - 用于多服务器管理。 访问MP卡的方法有多种: 1. 本地终端 - 使用物理终端或终端...

    java安全性编程教案(java)

    包括使用过滤器进行请求验证、避免使用不安全的HTTP方法、控制Session管理等。 十、持续学习与更新 Java安全不断演进,新的漏洞和攻击手段层出不穷。因此,开发者应定期学习最新的安全指南,及时更新库和框架,以...

    2015JAVA_WEB_基础考试题.pdf

    以下是对文件中提及知识点的详细解说: 1. Servlet和JSP基础 在Web开发中,Servlet和JSP是Java EE的核心技术,用于创建动态Web应用。Servlet负责处理客户端请求并返回响应,而JSP主要用于展示数据。 2. Tomcat...

    Java毕业设计——基于java新闻发布及管理系统(论文+答辩PPT+源代码+数据库).zip

    可能使用session和cookie来管理用户的登录状态,同时通过角色权限机制控制不同用户对新闻的操作权限。 5. **论文资料**: 论文部分会详细阐述项目的背景、需求分析、系统设计、技术选型、实现过程、测试结果和系统...

    SSH开发案例

    4. **DAO设计模式**:理解数据访问对象(DAO)的实现,如何使用Hibernate Session进行CRUD操作。 5. **Service层设计**:学习业务逻辑层的设计,如何将DAO与业务逻辑结合,实现松耦合的服务接口。 6. **Spring整合**...

    使用新浪微博API的OAuth认证发布微博实例

    总而言之,使用新浪微博API的OAuth认证发布微博实例,涵盖了OAuth认证的流程、新浪微博API的调用方法以及微博内容发布的操作。这些知识点不仅对想了解新浪微博API的开发者有帮助,也对希望在自己的应用中集成微博...

    EJB3.0的学习文档

    使用`find()`方法根据主键查找已存在的实体。 #### 3.6 新 Entity 创建新的实体实例,然后调用`persist()`将其持久化到数据库。 #### 3.7 删除 Entity `remove()`方法用于删除一个持久态的实体,它会被从数据库...

Global site tag (gtag.js) - Google Analytics