設計網路應用程式時,網頁開發人員有時會想要存取在應用程式中可用,但未透過 URL 傳輸的變數資料。舉例來說,某個行事曆網路應用程式可能會詢問訪客的時區偏好設定。然後,應用程式就會在應用程式的所有頁面中顯示該時區的日期與時間。Session 變數可以提供這種功能。
雖然 Session 變數是網路開發人員的強大工具,Dreamweaver 並不會自動產生所有讓其運作所需的程式碼。本文件將描述 Session 變數,並提供在 Dreamweaver 支援的不同伺服器模式中使用 Session 變數的步驟。
想要使用和瞭解本文件的開發人員必須正在使用某種伺服器模式,例如 ASP 或 ColdFusion。開發人員必須具有以下概念的實用知識。同時,他們也必須使用支援動態開發的 Dreamweaver 版本 (Dreamweaver MX 或 Dreamweaver MX 2004)。請參閱「使用 Dreamweaver」手冊或「說明」系統中的相關區段以深入瞭解。
透過設定應用程式可在訪客工作階段期間存取的變數,Session 變數可讓開發人員儲存訪客資訊。
Session 變數具有以下特性:
一般而言,開發人員會透過讓訪客在網路應用程式中填寫表單來擷取 Session 變數的資料。Session 變數會設定為一個表單欄位的值。本 TechNote 中的範例會使用表單元素的資訊來設定 Session 變數的值。
對於 ASP.NET 之外的所有伺服器模式,Dreamweaver 都具有選單式的功能,可在 Session 變數建立後對網頁上寫入 Session 變數。但是,Dreamweaver 並不提供選單式的功能來指派 Session 變數的值 (亦稱將 Session 變數起始化)。您必須在原始碼中手動指派 Session 變數的值。
注意: ASP.NET 的範例與其他伺服器模式差異甚大,因為 ASP.NET 通常是使用 Web 表單,而非傳統的 HTML 表單。如果您是使用 ASP.NET 伺服器模式,請參閱本文件最末的 ASP.NET 範例。
在網站內建立三個動態頁面。第一頁會含有提交到第二頁的 HTML 表單 (於下一步驟中說明)。在第二頁建立一個指向第三頁的超連結。
注意: 此範例之所使用三個頁面,是為了證明 Session 變數可用於第二頁、第三頁以及後續的頁面上。Request 變數 (可替代 Session 變數) 可從一個頁面延續到第二個頁面。但是,Request 變數無法在第三頁或後續頁面上使用。
在第二頁上啟動「程式碼」檢視 (「檢視 > 程式碼」)。在開啟的 <html> 標籤上方,輸入下方清單中代表您伺服器模式的代碼。
此代碼會從第一頁上建立名為「txtFirstName」表單元素中提取內容。之後,它會建立一個名為「sessFirstName」的 Session 變數,並會設定為等同於表單元素的內容。換言之,此代碼會建立一個 Session 變數,以保留使用者在表單頁面上輸入的資訊。
在網站中建立兩個頁面。第一頁含有會自行回傳然後重新導向到第二頁的 ASP.NET 網站表單。
注意: 此範例之所以使用兩個頁面,是為了證明 Session 變數可用於第二頁、第三頁、第四頁以及後續的頁面上。Request 變數 (可替代 Session 變數) 無法從一個頁面上的 ASP.NET 網站表單延續到第二頁。
第一頁所包含的 ASP.NET 網站表單必須內含一個 <asp:textbox> 伺服器控制項和一個 <asp:button> 伺服器控制項。將文字方塊控制的「id」屬性設為「txtFirstName」。第一頁的完整程式碼提供於下方。視您為 ASP.NET 網站選用的語言而定,選擇使用 C# 或 VB:
此程式碼會從名為「txtFirstName」的 <asp:textbox> 伺服器控制項提取內容。它會建立一個名為「sessFirstName」的 Session 變數,並會設定等等於伺服器控制項的內容。換言之,此代碼會建立一個 Session 變數,以保留使用者在表單頁面上輸入的資訊。
如需更多有關 Session 變數的詳細資料,請參閱以下文章:
登入您的帳戶