ASP.NET 內置對象


      (1)簡述ASP.NET內置對象。

  答:ASP.NET提供了內置對象有Page、Request、Response、Application、Session、Server、Mail和Cookies。這些對象使用戶更容易收集通過瀏覽器請求發送的信息、響應瀏覽器以及存儲用戶信息,以實現其他特定的狀態管理和頁面信息的傳遞。

  (2)簡述Response對象。

  答:Response對象用來訪問所創建的並客戶端的響應,輸出信息到客戶端,它提供了標識服務器和性能的HTTP變量,發送給瀏覽器的信息和在cookie中存儲的信息。它也提供了一系列用於創建輸出頁面的方法,如無所不在的Response . Write方法。

  (3)簡述Request對象。

  答:Request對象是用來獲取客戶端在請求一個頁面或傳送一個Form時提供的所有信息,這包括能夠標識瀏覽器和用戶的HTTP變量,存儲在客戶端的cookie信息以及附在URL后面的值(查詢字符串或頁面中< Form>段中的HTML控件內的值)。

  (4)簡述Application對象。

  答:在asp.net環境下,Application對象來自HttpApplictionStat類。它可以在多個請求、連接之間共享公用信息,也可以在各個請求連接之間充當信息傳遞的管道。使用Application對象來保存我們希望傳遞的變量。由於在整個應用程序生存周期中,Application對象都是有效的,所以在不同的頁面中都可以對它進行存取,就像使用全局變量一樣方便。

  (5)簡述Session對象。

  答:Session對象就是服務器給客戶端的一個編號。當一台WEB服務器運行時,可能有若干個用戶瀏覽正在瀏覽這台服務器上的網站。當每個用戶首次與這台WWW服務器建立連接時,他就與這個服務器建立了一個Session,同時服務器會自動為其分配一個SessionID,用以標識這個用戶的唯一身份。特別說明的是Session對象的變量只是對一個用戶有效,不同的用戶的會話信息用不同的Session對象的變量存儲。在網絡環境下Session對象的變量是有生命周期的,如果在規定的時間沒有對Session對象的變量刷新,系統會終止這些變量。

  (6)簡述Server對象。

  答:Server對象提供對服務器上的方法和屬性的訪問。其中大多數方法和屬性是作為實用程序的功能服務的。Server對象也是Page對象的成員之一,主要提供一些處理頁面請求時所需的功能;例如建立COM對象、將字符串的編譯碼等工作。

  (7)簡述Cookie對象。

  答:cookie是一小塊由瀏覽器存貯在客戶端系統上(硬盤)的文本,是一種標記。由WEB服務器嵌入用戶瀏覽器中,以便標識用戶,且隨同每次用戶請求發往WEB服務器。Cookies的值比A S P.NET其他集合(例如Form和Server Variables )的值要復雜得多。

  (8)簡述Mail對象。

  答:ASP.NET被賦予了一個發送Email的新對象,名為SmtpMail,實際上Mail對象由System.Web.Mail類庫實現(Class Library)。這個類庫由MailMessage對象、SmtpMail對象、MailFormat對象和MailAttachment對象組成,它們相互合作,完成E-mail的發送。

 

ASP.NET的內置對象介紹 
1.Response 
2.Request 
3.Server 
4.Application 
5.Session 
6.Cookie

一、Response 

Response對象用語輸出數據到客戶端,包括向瀏覽器輸出數據、重定向瀏覽器到另一個URL或向瀏覽器輸出Cookie文件。 
其類名為httpResponse 

屬性和方法 :
1、Write() 向客戶端發送字符串信息            示例:Response.Write (變量數據或字符串)
 

2、BufferOutPut屬性 是否使用緩存     

3、Clear() 清除緩存 

4、Flush() 強制輸出緩存的所有數據 

5、Redirect() 網頁轉向地址     Response對象的Redirect方法將客戶端瀏覽器重定向到另外的URL上,即跳轉到另一個網頁。  示例:Response.Redirect("http://www.baidu.com") 

6、End() 終止當前頁的運行     示例:Response.End() 終止當前頁的運行 

7、WriteFile() 讀取一個文件,並且寫入客戶端輸出流     示例:Response.End() 終止當前頁的運行,FileName 指代需向瀏覽器輸出的文件的文件名
(實質:打開文件,並且輸出到客戶端。) 

二、Request 

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 

 三、Server 

 Server對象提供對服務器上的方法和屬性進行的訪問 .其類名稱是HttpServerUtility. 

Server對象的主要屬性有: 
MachineName:獲取服務器的計算機名稱。 
ScriptTimeout:獲取和設置請求超時(以秒計)。 

方法名稱 說明 :
1、CreateObject 創建 COM 對象的一個服務器實例。 
2、Execute 執行當前服務器上的另一個aspx頁,執行完該頁后再返回本頁繼續執行 
3、HtmlEncode 對要在瀏覽器中顯示的字符串進行HTML編碼並返回已編碼的字符串。 
4、HtmlDecode 對HTML編碼的字符串進行解碼,並返回已解碼的字符串。 
5、MapPath 返回與 Web 服務器上的指定虛擬路徑相對應的物理文件路徑。 
6、Transfer 終止當前頁的執行,並為當前請求開始執行新頁。 
7、UrlEncode 將代表URL的字符串進行編碼,以便通過 URL 從 Web 服務器到客戶端進行可靠的 HTTP 傳輸。 
8、UrlDecode 對已被編碼的URL字符串進行解碼,並返回已解碼的字符串。 
9、UrlPathEncode 對 URL 字符串的路徑部分進行 URL 編碼,並返回已編碼的字符串。 
編碼: 
Server.HtmlEncode(“HTML代碼”) 
解碼: 
Server.HtmlDecode(“已編碼的HTML”) 
Server對象的MapPath方法將虛擬路徑或相對於當前頁的相對路徑轉化為Web 服務器上的物理文件路徑。 
語法:Server.MapPath(“虛擬路徑”) 
String FilePath 
FilePath = Server.MapPath(“/”) 
Response.Write(FilePath) 

四、Application 

Application對象在實際網絡開發中的用途就是記錄整個網絡的信息,如上線人數、在線名單、意見調查和網上選舉等。在給定的應用程序的多有用戶之間共享信息,並在服務器運行期間持久的保存數據。而且Application對象還有控制訪問應用層數據的方法和可用於在應用程序啟動和停止時觸發過程的事件。

1.使用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即會話,是指一個用戶在一段時間內對某一個站點的一次訪問。 
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

Cookie就是Web服務器保存在用戶硬盤上的一段文本。Cookie允許一個Web站點在用戶的電腦上保存信息並且隨后再取回它。信息的片斷以‘鍵/值’對的形式存儲。 
Cookie是保存在客戶機硬盤上的一個文本文件,可以存儲有關特定客戶端、會話或應用程序的信息,在.NET中對應HttpCookie類。 
有兩種類型的Cookie:會話Cookie(Session Cookie)和持久性Cookie。前者是臨時性的,一旦會話狀態結束它將不復存在;后者則具有確定的過期日期,在過期之前Cookie在用戶的計算機上以文本文件的形式存儲。 
在服務器上創建並向客戶端輸出Cookie可以利用Response對象實現。 
Response對象支持一個名為Cookies的集合,可以將Cookie對象添加到該集合中,從而向客戶端輸出Cookie。 
通過Request對象的Cookies集合來訪問Cookie

編寫Cookie

//方式1:
Response.Cookies["username"].value="mike";
Response.Cookies["username"].Expires=DateTime.MaxValue; 

//方式2:
HttpCookie acookie = new HttpCookie("last");
acookie.Value="a";
acookie..Expires=DateTime.MaxValue; 
Response.Cookies.Add(acookie);

//多值Cookie的寫法

//方式1:
Response.Cookies["userinfo1"]["name"].value="mike";
Response.Cookies["userinfo1"]["last"].value="a";
Response.Cookies["userinfo1"].Expires=DateTime.MaxValue; 

//方式2:
HttpCookie cookie = new HttpCookie("userinfo1");
cookie.Values["name"]="mike";
cookie.Values["last"]="a";
cookie.Expires=DateTime.MaxValue; 
//cookie.Expires = System.DateTime.Now.AddDays(1);//設置過期時間  1天
Response.Cookies.Add(cookie)

 讀取Cookie 
Internet Explorer 將站點的 Cookie 保存在文件名格式為 <user>@<domain>.txt 的文件中,其中 <user> 是您的帳戶名。
注意:在獲取Cookie的值之前,應該確保該 Cookie 確實存在。否則,您將得到一個異常

if(Request.Cookies["userName"] != null)
{
str = Request.Cookies["userName"].Value;
}

//多值Cookie的讀取
If ( Request.Cookies["userInfo1"]!=null )
{
  string name=Request.Cookies["userInfo1"]["name"];
  string last=Request.Cookies["userInfo1"]["last"]; 
}

//讀取 Cookie 集合
for(int i = 0 ;i<Request.Cookies.Count ;i++)
{
    HttpCookie cookies = Request.Cookies;
    Response.Write("name="+cookies.Mame+"<br/>");
    if (cookies.HasKeys )//是否有子鍵
    {
        System.Collections.Specialized.NameValueCollection NameColl 
                                             = aCookie.Values ;
        for(int j=0;j<NameColl.Count;j++)
        {
            Response.Write("子鍵名="+ NameColl.AllKey[j] +"<br/>");
            Response.Write("子鍵值="+ NameColl[j] +"<br/>");
        }

    }
    else
    {
        Response.Write("value="+cookies.Value+"<br/>");        
    }
}

運行此代碼時,可看到一個名為“ASP.NET_SessionId”的Cookie,ASP.NET用這個 Cookie 來保存您的會話的唯一標識符。

修改 Cookie 
修改的方法與創建方法相同

刪除 Cookie 
將其有效期設置為過去的某個日期。當瀏覽器檢查 Cookie 的有效期時,就會刪除這個已過期的 Cookie。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM