一、 Application 核心概念
- 定义:Application 对象用于存储和访问来自 任何页面 的变量,类似于 Session 对象。
- 作用范围:所有的用户 共享同一个 Application 对象;而 Session 对象与用户是 一一对应 的。
- 典型用途:存放应用程序中多个页面都需要使用的公共信息,例如数据库连接字符串、全局计数器、系统配置等。
- 优势:在一个地方修改,所有页面自动生效。
简单理解:Application 是 全局共享 的“公共仓库”,Session 是 每个用户专属 的“私人储物柜”。
二、 Application 的生命周期
- 启动:当 Web 应用程序启动时(第一个用户首次访问),触发
Global.asa中的Application_OnStart事件,可在此初始化 Application 变量。 - 结束:应用程序关闭或 Web 服务器停止时,Application 对象被销毁。
三、 基本操作
1. 创建 Application 变量(在 Global.asa 中)
<script language="vbscript" runat="server">
Sub Application_OnStart
application("vartime")="" ' 存储时间信息
application("users")=1 ' 存储在线用户数
End Sub
</script>Code language: HTML, XML (xml)
2. 访问 Application 变量(任何 ASP 页面)
There are
<%
Response.Write(Application("users"))
%>
active connections.Code language: HTML, XML (xml)
3. 修改 Application 变量
由于所有用户共享,修改时通常需要考虑 并发控制(使用 Lock 和 Unlock 方法,虽然原文未提及,但这是实际开发中的关键知识点):
<%
Application.Lock
Application("users") = Application("users") + 1
Application.Unlock
%>Code language: HTML, XML (xml)
四、 Session 与 Application 对比总结
| 对比维度 | Session 对象 | Application 对象 |
|---|---|---|
| 作用范围 | 单个用户(一对一) | 所有用户(全局共享) |
| 存储内容 | 用户私人信息(用户名、ID、购物车等) | 公共信息(数据库连接、全局计数器、配置) |
| 生命周期 | 用户第一次访问开始,超时或 Abandon 结束 | 应用程序启动开始,服务器关闭结束 |
| 存储位置 | 服务器端(客户端仅存 SessionID Cookie) | 服务器端 |
| 并发问题 | 无需考虑(单用户) | 需要考虑(多用户同时读写,需加锁) |
| 典型场景 | 用户登录状态、个性化设置 | 网站访问统计、全局配置参数 |
Previous: Session
Next: include 指令(引用文件)