ASP.NET的內建對象介紹 1.Response 2.Request 3.Server 4.Application 5.Session 6.Cooki Request對象主要是讓伺服器取得用戶端瀏覽器的一些資料,包括從HTML表單用Post或者GET方法傳遞的參數、Cookie和使用者認證。因為Request對象是Page對象的成員之一,所以在程式中不需要做任何的聲明即可直接使用; 其類名為 HttpRequest 屬性很多,但方法很少,只有一個BinaryRead() 1.使用Request.Form屬性擷取資料 通過該屬性,讀取<Form></Form>之間的表單資料.注意:提交方式要設定為“Post”。 與Get方法相比較,使用Post方法可以將大量資料發送到伺服器端 2.利用Request.QueryString屬性擷取資料 Request對象的QuerySting屬性可以擷取 HTTP 查詢字串變數集合 。 通過該屬性,我們可以讀取地址資訊 http://localhost/aaa.aspx?uid=tom&pwd=abc 其中標識為紅色部分的資料. 注意:提交方式要設定為“Get” 3.問題:Request.Form用於表單提交方式為Post的情況,而Request.QueryString用於表單提交方式為Get的情況,如果用錯,則擷取不到資料。 解決方案:利用Request(“元素名”)來簡化操作。 4.Request.ServerVariables("環境變數名稱") 類似的還有:UserHostAddress,Browser,Cookies,ContentType,IsAuthenticated Item,Params Response對象用語輸出資料到用戶端,包括向瀏覽器輸出資料、重新導向瀏覽器到另一個URL或向瀏覽器輸出Cookie檔案。 其類名為httpResponse 屬性和方法 Write() 向用戶端發送字串資訊 BufferOutPut屬性 是否使用緩衝 Clear() 清除緩衝 Flush() 強制輸出緩衝的所有資料 Redirect() 網頁轉向地址 End() 終止當前頁的運行 WriteFile() 讀取一個檔案,並且寫入用戶端輸出資料流 (實質:開啟檔案,並且輸出到用戶端。) 1.Response.Write 變數資料或字串 Response.Write (變數資料或字串) <%=…%> Response.Write("<script language=javascript>alert('歡迎學習ASP.NET')</script>") Response.Write("<script>window.open('WebForm2.aspx')</script>") 2.Response對象的Redirect方法將用戶端瀏覽器重新導向到另外的URL上,即跳轉到另一個網頁。 例如: Response.Redirect("http://www.163.net/") 3. Response.End() 終止當前頁的運行 4.Response.WriteFile(FileName) 其中: FileName 指代需向瀏覽器輸出的檔案的檔案名稱 Server對象提供對伺服器上的方法和屬性進行的訪問 .其類名稱是HttpServerUtility. Server對象的主要屬性有: MachineName:擷取伺服器的電腦名稱。 ScriptTimeout:擷取和佈建要求逾時(以秒計)。 方法名稱 說明 CreateObject 建立 COM 物件的一個伺服器執行個體。 Execute 執行當前伺服器上的另一個aspx頁,執行完該頁後再返回本頁繼續執行 HtmlEncode 對要在瀏覽器中顯示的字串進行HTML編碼並返回已編碼的字串。 HtmlDecode 對HTML編碼的字串進行解碼,並返回已解碼的字串。 MapPath 返回與 Web 服務器上的指定虛擬路徑相對應的物理檔案路徑。 Transfer 終止當前頁的執行,並為當前請求開始執行新頁。 UrlEncode 將代表URL的字串進行編碼,以便通過 URL 從 Web 服務器到用戶端進行可靠的 HTTP 傳輸。 UrlDecode 對已被編碼的URL字串進行解碼,並返回已解碼的字串。 UrlPathEncode 對 URL 字串的路徑部分進行 URL 編碼,並返回已編碼的字串。 編碼: Server.HtmlEncode(“HTML代碼”) 解碼: Server.HtmlDecode(“已編碼的HTML”) 1.Server對象的MapPath方法將虛擬路徑或相對於當前頁的相對路徑轉化為Web 服務器上的物理檔案路徑。 文法:Server.MapPath(“虛擬路徑”) String FilePath FilePath = Server.MapPath(“/”) Response.Write(FilePath) Application對象在實際網路開發中的用途就是記錄整個網路的資訊,如上線人數、線上名單、意見調查和網上選舉等。在給定的應用程式的多有使用者之間共用資訊,並在伺服器運行期間持久的儲存資料。而且Application對象還有控制訪問應用程式層資料的方法和可用於在應用程式啟動和停止時觸發過程的事件。 1.使用Application對象儲存資訊 使用Application對象儲存資訊 Application(“鍵名”) = 值 或 Application(“鍵名”,值) 擷取Application對象資訊 變數名 = Application(“鍵名”) 或:變數名 = Application.Item(“鍵名”) 或:變數名 = Application.Get(“鍵名”) 更新Application對象的值 Application.Set(“鍵名”, 值) 刪除一個鍵 Application.Remove(“鍵名”, 值) 刪除所有鍵 Application.RemoveAll() 或Application.Clear() 2.有可能存在多個使用者同時存取同一個Application對象的情況。這樣就有可能出現多個使用者修改同一個Application命名物件,造成資料不一致的問題。 HttpApplicationState 類提供兩種方法 Lock 和 Unlock,以解決對Application對象的訪問同步問題,一次只允許一個線程訪問應用程式狀態變數。 關於鎖定與解鎖 鎖定:Application.Lock() 訪問:Application(“鍵名”) = 值 解鎖:Application.Unlock() 注意:Lock方法和UnLock方法應該成對使用。 可用於網站訪問人數,聊天室等裝置 3. 使用Application事件 在ASP.NET 應用程式中可以包含一個特殊的可選檔案——Global.asax 檔案,也稱作 ASP.NET 應用程式檔案,它包含用於響應 ASP.NET或HTTP模組引發的應用程式層級事件的代碼。 Global.asax 檔案提供了7個事件,其中5個應用於Application對象 事件名稱 說明 Application_Start 在應用程式啟動時激發 Application_BeginRequest 在每個請求開始時激發 Application_AuthenticateRequest 嘗試對使用者進行身分識別驗證時激發 Application_Error 在發生錯誤時激發 Application_End 在應用程式結束時激發 Session即會話,是指一個使用者在一段時間內對某一個網站的一次訪問。 Session對象在.NET中對應HttpSessionState類,表示“工作階段狀態”,可以儲存與目前使用者會話相關的資訊。 Session對象用於儲存從一個使用者開始訪問某個特定的aspx的頁面起,到使用者離開為止,特定的使用者會話所需要的資訊。使用者在應用程式的頁面切換時,Session對象的變數不會被清除。 對於一個Web應用程式而言,所有使用者訪問到的Application對象的內容是完全一樣的;而不同使用者會話訪問到的Session對象的內容則各不相同。 Session可以儲存變數,該變數只能供一個使用者使用,也就是說,每一個網頁瀏覽者都有自己的Session物件變數,即Session對象具有唯一性。 (1)將新的項添加到工作階段狀態中 文法格式為: Session ("鍵名") = 值 或者 Session.Add( "鍵名" , 值) (2)按名稱擷取工作階段狀態中的值 文法格式為: 變數 = Session ("鍵名") 或者 變數 = Session.Item("鍵名") (3)刪除工作階段狀態集合中的項 文法格式為: Session.Remove("鍵名") (4)清除工作階段狀態中的所有值 文法格式為: Session.RemoveAll() 或者 Session.Clear() (5)取消當前會話 文法格式為: Session.Abandon() (6)設定工作階段狀態的逾時期限,以分鐘為單位。 文法格式為: Session.TimeOut = 數值 Global.asax 檔案中有2個事件應用於Session對象 事件名稱 說明 Session_Start 在會話啟動時激發 Session_End 在會話結束時激發 Cookie就是Web伺服器儲存在使用者硬碟上的一段文本。Cookie允許一個Web網站在使用者的電腦上儲存資訊並且隨後再取回它。資訊的片斷以‘鍵/值’對的形式儲存。 Cookie是儲存在客戶機硬碟上的一個文字檔,可以儲存有關特定用戶端、會話或應用程式的資訊,在.NET中對應HttpCookie類。 有兩種類型的Cookie:會話Cookie(Session Cookie)和持久性Cookie。前者是臨時性的,一旦工作階段狀態結束它將不複存在;後者則具有確定的到期日期,在到期之前Cookie在使用者的電腦上以文字檔的形式儲存。 在伺服器上建立並向用戶端輸出Cookie可以利用Response對象實現。 Response對象支援一個名為Cookies的集合,可以將Cookie對象添加到該集合中,從而向用戶端輸出Cookie。 通過Request對象的Cookies集合來訪問Cookie |