【Asp.Net】五大物件

王雪娜-Alisa發表於2016-06-07

學習Asp.Net時候,親愛的於老師講解了五大物件。趁著知識還沒有忘記,趁熱打鐵,好好的總結一下。下面跟著我學習一下Asp.Net的五大物件。


Application

在沒有學習Asp.Net之前就已經知道了Application這個東東,但是當時不是很瞭解,也不知道到底是什麼,學習了Asp.Net才知道它是其中的一個物件。


Application:全域性應用程式類。在伺服器記憶體中儲存數量較少又獨立於使用者請求的資料。由於它的訪問速度非常快而且只要應用程式不停止,資料一直存在,我們通常在Application_Start的時候去初始化一些資料,在以後的訪問中可以迅速訪問和檢索。當然,Application物件除了基本的初始化事件,還有與Start相對應的End事件,即Application_End,這個事件中通常要寫一些程式關閉時候要執行的程式碼。程式在執行出現錯誤的時候,Application物件還提供了Application_Error事件來處理錯誤,可以在該事件下面書寫程式出錯時候要執行的程式碼。接下來要寫的就是Application的這些事件並不是憑空書寫的,他們需要存放在一個名為Global.asax中。Global.asax(通常我們不改名)是一個用來處理應用程式全域性的事件。開啟檔案,系統已經為我們定義了一些事件的處理方法。用法如下:

<script runat="server">
    void Application_Start(object sender, EventArgs e)
    {
        // 在應用程式啟動時執行的程式碼
    }   
    void Application_End(object sender, EventArgs e)
    {
        //  在應用程式關閉時執行的程式碼
   }       
    void Application_Error(object sender, EventArgs e)
    {
        // 在出現未處理的錯誤時執行的程式碼
    }
</script>

Session

Session物件和Application物件很相似。含義是:會話。可以儲存一段時間內執行的網頁內容,只要不進行刪除記錄操作,都可以在下次執行的時候很快速度的找到之前執行的網頁,便於提高執行效率。它也有和Application物件相似的事件。用法如下:

<script runat="server">
    void Session_Start(object sender, EventArgs e)
    {
        // 在新會話啟動時執行的程式碼
   }
    void Session_End(object sender, EventArgs e)
    {
        // 在會話結束時執行的程式碼
        // 注意: 只有在 Web.config 檔案中的 sessionstate 模式設定為InProc 時,才會引發 Session_
           End 事件
        // 如果會話模式設定為 StateServer 或 SQLServer,則不會引發該事件
    }
</script>

Server

ASP.NET中Server物件是context的一個屬性,是HttpServerUtility類的一個物件。
Server的主要方法:

事件 解釋
ClearError 清除前一個異常。
CreateObject 已過載。 建立 COM 物件的一個伺服器例項。
CreateObjectFromClsid 建立 COM 物件的伺服器例項,該物件由物件的類識別符號 (CLSID) 標識。
Execute 已過載。 在當前請求的上下文中執行指定資源的處理程式,然後將執行返回給呼叫它的頁。
GetLastError 返回前一個異常。
HtmlDecode 已過載。 對已被編碼以消除無效 HTML 字元的字串進行解碼。
HtmlEncode 已過載。 對要在瀏覽器中顯示的字串進行編碼。
MapPath 返回與 Web 伺服器上的指定虛擬路徑相對應的物理檔案路徑。 該方法經常使用。將虛擬路徑轉換為伺服器物理路徑。
Transfer 已過載。 終止當前頁的執行,併為當前請求開始執行新頁。
TransferRequest 已過載。 非同步執行指定的 URL。
UrlDecode 已過載。 對字串進行解碼,該字串針對 HTTP 傳輸進行了編碼並在 URL 中傳送到伺服器。
UrlEncode 已過載。 編碼字串,以便通過 URL 從 Web 伺服器到客戶端進行可靠的 HTTP 傳輸。
UrlPathEncode 對 URL 字串的路徑部分進行 URL 編碼並返回編碼後的字串。
UrlTokenDecode 將 URL 字串標記解碼為使用 64 進位制數字的等效位元組陣列。
UrlTokenEncode 將一個位元組陣列編碼為使用 Base 64 編碼方案的等效字串表示形式,Base 64 是一種適於通過 URL 傳輸資料的編碼方案。

Request

三種獲取表單值的方法:

public partial class WebForm1 : System.Web.UI.Page  
    {  
        protected void Page_Load(object sender, EventArgs e)  
        {  
            //Request三種獲取表單值得方法。  

            #region  對於post方法遞交表單的獲取值方法  
            string userName = Request.Form.Get("txtUserName").ToString();  
            string userPwd = Request.Form.Get("txtUserPwd").ToString();  
            #endregion  

            #region  對於get方法遞交表單的獲取值方法  
            string userName = Request.QueryString["txtUserName"].ToString();    
            string userPwd = Request.QueryString["txtUserPwd"].ToString();  
            #endregion  

            #region  對兩者方法都適用的方法,運用Reuqest的索引值去獲取所要求的表單值  
            string userName = Request["txtUserName"].ToString();  
            string userPwd = Request["txtUserPwd"].ToString();  
            #endregion  
            Response.Write("登陸的使用者名稱為:" + userName + ";密碼為:" + userPwd);  

            if (userName=="a"&&userPwd=="b")  
            {  
                Response.Redirect("WebForm2.aspx");  
            }  
            else  
            {  
                Response.Redirect("login.html");  
            }         
        }  

get和post方法的區別如下:
get方法提交,直接定義一個url就可以傳值。缺點是,傳的值是明碼顯示的。因為瀏覽器顯示的字元是有長度的,所以他的資料顯示的時候是受限制的。
post提交,是把資料作為一個整個集合進行提交,對於post方法傳值的方法傳的引數不會在url中用明碼顯示。


Response

response物件,最主要的用到的方法是respone.write(string)和responst.redirect(url).
response.write(string)的作用是從伺服器端向客戶端返回資料(寫資料)。response.rediec(“url”)的作用是在伺服器端重定向另一個網頁。                              

相關文章