一、概述
ASP.NET 提供了完整的服務器端對象模型,可以在運行期間使用。ASP.NET 可以在其環境中把頁面上的所有控件作為對象來訪問。在頁面上使用控件功能,生成 HTML 內容的 ASP.NET 通常稱為 Web 窗體。
基本上,Web 窗體上控件的狀態信息(包括在文本框中輸入的信息、下拉列表中的選項等)存儲在隱藏的 viewstate 字段中,這個字段是服務器生成的頁面的一部分,并傳送給用戶。后續的操作稱為會送(postback)。
二、ASP.NET Web 窗體
● 保留文件夾 App_Date,包含數據文件,例如 XML文件或數據庫文件。
● 在 ASP.NET 頁面中,只有一個服務器端<form>元素。
● runat="server" 表示窗體的處理將在服務器上進行,必須具備,否則窗體不會執行任何操作。
● 頂部的 <@% Page %> 標記,定義了頁面特性。
2.1、流程
.aspx 布局(HTML)和ASP.NET 代碼。
.aspx.cs 用于定制窗體操作的代碼。
預編譯站點流程:
● ASP.NET 處理器執行頁面,確定對象創建,以實例化頁面對象模型。
● 動態創建一個基類,包括頁面上的控件成員和這件控件的事件處理程序(例如按鈕單擊事件)。
● 頁面代碼文件與這個基類合并,構成完整的對象模型。
● 編譯所有代碼,并告訴緩存起來。
● 生成 HTML,返回給用戶。
2.2、ASP.NET 中常見的系統對象
Page 對象:頁面自身的方式。
Request 對象:封裝了由客戶端生成的 HTTP 請求的細節(參數、屬性和數據)。
● QueryStrings 屬性收集了 Get 請求發送的數據。
● From 屬性收集了 Post 請求發送的數據。
● ServerVariable(環境變量)集合中包含服務器和客戶端的系統信息。在 Page 指令里添加屬性 Trace="True" 可以追蹤詳細的環境變量信息。
● Params 集合包含了上三種方式的集合。
Response 對象:響應返回到 HTTP 客戶端的輸出。
● Write() 方法可以輸出指定的文本內容。
● End() 方法可以使 Web 服務器停止當前的程序并返回結果。
● Redirect() 方法可以將頁面重定向到另一頁面。
Session 對象:作用于會話期的頁面共享信息。
Session["xxxx"] = 值對象;
對象 = Session["xxxx"];
Cookie 對象:保持與客戶端的共享信息方式。對應于 HttpCookie 類。
Response.Cookies["xxxx"].Value = 字符串變量;
string xxx = Request.Cookies["xxx"].Value;
Application 對象:作用于應用程序運行期提供共享信息。
Application["xxxx"] = 值對象;
值變量 = Application["xxxx"];
Server 對象:只是封裝了一些 Web 服務器相關的常用方法。
Server.MapPath("~/"); //返回所在虛擬目錄的物理路徑
Server.HtmlEncode("xxxx"); //不編譯 HTML 代碼,直接在頁面輸出
Server.Encode("xxxxx"); //對 URL 地址的特殊字符進行編碼
Server.Execute("xxxxx"); //執行參數指定的頁面,執行完后返回本頁
Server.Transfer("xxxx"); //執行參數指定的頁面,執行完后結束
三、應用程序配置
應用程序定義為項目中的所有文件,由 Web.config 文件配置。
第一次創建應用程序(即收到第一個 HTTP 請求時),將創建 Application 對象。此時還將觸發 Application_Start 事件,創建一個 HttpApplication 實例池。每個輸入的請求都會接收到這樣一個實例,執行請求的處理過程。與全局的 Application 對象不同,所有的 HttpApplication 實例完成任務后,就觸發 Application_End 事件,應用程序終止運行,消除 Application 對象。
在單個用戶使用 Web 應用程序時,會啟動一個會話,與應用程序類似,會話將創建一個用戶特定的 Session 對象,并觸發 Session_Start 事件。在一個會話中,每個請求都將觸發 Application_BeginRequest 和 Application_EndRequest 事件。在一個會話中可以多次觸發這兩個事件訪問應用程序的不同資源。會話可以手動終止,也可以因為沒有后續請求而超時終止。會話種子會觸發 Session_End 事件,消除 Session 對象。
posted on 2008-10-31 23:16
黃小二 閱讀(336)
評論(0) 編輯 收藏 所屬分類:
ASP.NET