變數是儲存資料的容器,ASP 採用 VBScript/JavaScript 變數語法,支援區域、Session、Application 三種層級作用域。
| 層級 | 宣告位置 | 可存取範圍 | 生命週期 |
|---|---|---|---|
| 區域變數 | Sub/Function 內部 | 僅該程序內部 | 程序每次執行建立,結束即銷毀 |
| 頁面層級 (Script-level) | 所有程序外部 (<% %> 區塊) | 該 ASP 檔案所有程序 | 頁面請求處理期間 |
| Session 變數 | Session("key") = value | 同一使用者所有頁面 | Session 存活期間 (預設 20 分鐘無活動) |
| Application 變數 | Application("key") = value | 所有使用者所有頁面 | 應用程式存活期間 (直到 Web 服務重啟) |
Session("UserID") = 12345uid = Session("UserID")Application.Lock / Unlock 防止競態條件<%
Dim greeting
If Hour(Now) < 12 Then
greeting = "早安!"
ElseIf Hour(Now) < 18 Then
greeting = "午安!"
Else
greeting = "晚安!"
End If
Response.Write greeting
%>
現代建議:ASP.NET 使用 HttpContext.Session、HttpApplicationState、IDistributedCache、IOptions 等更結構化的狀態管理機制。