中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET內置對象有什么用

發布時間:2021-03-08 16:17:17 來源:億速云 閱讀:247 作者:TREX 欄目:開發技術

本篇內容介紹了“ASP.NET內置對象有什么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

為什么學習ASP.NET內置對象

在ASP.NET中微軟提供了多種內置對象提供開發人員使用,在實際開發中內置對象的使用不可或缺的,在Web網站的數據交互,網頁服務器交互,網頁跳轉,服務器數據的傳輸等其著舉足輕重的作用。在初學ASP.NET技術中也是非常重要的環節,也是更深學習ASP.NET的“里程碑”。本文章主要介紹ASP.NET的內置對象的使用、屬性、方法和工作原理。ASP.NET的內置對象主要包括:Response、Response、Session、Cookie、Application、Server

一、Request對象

Request對象用來獲取客戶端在請求一個頁面或傳送一個Form是提供的所有信息。它包括用戶的HTTP變量、能夠識別的瀏覽器、存儲客戶端的Cookie信息和請求地址等。
Request對象是System.Web.httpRequest類的對象

1.屬性

(1) QueryString :獲取HTTP查詢字符串變量集合,主要用于收集HTTP協議中Get請求發送的數據
(2)Form :獲取窗體或頁面變量的集合,用于收集Post方法發送的請求數據
(3)ServerVarible:環境變量集合包含了服務器和客戶端的系統內信息
(4)Params:它是QueryString、Form和ServerVarible這三種方式的集合,不區分是由哪種方式傳遞的參數
(5)ApplicationPath:獲取服務器上ASP.NET虛擬應用程序的根目錄路徑
(6)ContertLength:指定客戶端發送的內容長度
(7)Cookies:獲取客戶端發送的Cookie集合
(8)FilePath:獲取當前請求的虛擬路徑
(9)Files:獲取采用多部分MIME格式的由客戶端上載的文件集合
(10) Item:從Cookies, From, QueryString或ServerVariables集合中獲取指定的對象
(11) Path:獲取當前請求的虛擬路徑
(12)Url:獲取有關當前請求的URL信息
(13)UserHostName:獲取遠程客戶端的DNS名稱
(14)UserHostAddress:獲取遠程客戶端的IP主機地址
(15)IsLocal:獲取一個值,該值指示該請求是否來自本地計算機
(16)Browser:獲取或設置有關正在請求的客戶端瀏覽器功能信息

2.方法

(1) BinaryRead():執行對當前輸入流進行制定字節數的二進制讀取
(2)SaveAs():將HTTP請求保存到磁盤
(3) MapPath():將指定的路徑映射到物理路徑

二、Response對象

Response對象是HttpRespone類的一個實例。該類主要是封裝來自ASP.NET操作的HTTP相應信息。Response對象將數據作為請求的結果從服務器發送到客戶瀏覽器中,并提供有關響應的消息。它可用來在頁面中輸出數據,在頁面中跳轉,還可以傳遞各個頁面的參數。

1.方法

(1)Redirect:將網頁重新轉到另一地址
(2)Write:寫出指定字符串。
(3)AppendHeader:
語法格式
Response.AppendHeader(Name,Value)
參數Name為HTTP頭,參數Value為HTTP頭的值。
HTTP頭是HTTP協議規定的請求和響應消息都支持的頭域內容。HTTP頭是頁面通過HTTP協議訪問頁面時,最先響應的請求和響應消息,例如HTTP頭中的Location,Location頭用于將頁面重定向到另一個頁面,與Redirect方法相似。
(3)WriteFile 將文件輸出到客戶端
(4)Flush 將緩沖區的數據輸出到客戶端瀏覽器
(5)End 停止并結束ASP網頁的處理
(6)Close 關閉客戶端的聯機
(7)ClearHeaders 清除緩沖區中的頁面標題
(8)Clear 清除緩沖區的數據
(9)BinaryWrite 將二進制字符或字符串輸出到客戶端瀏覽器
(10)AppendToLog 將自定義的數據加入到IIS日志文件中(Log File),以便追蹤與分析記錄。

2.屬性

(1)ContentType:輸出流的內容類型比如html(text/html) 、普通文本(text/pain)還是JPEG圖片(image/JPEG)。
(2)ContentEncoding:輸出流的編碼
(3)Cookies : 返回瀏覽器的cookies的集合
(4)Buffer : 設置緩沖信息, true | false .默認是true
(5)Expires : 獲取或設置在瀏覽器上緩存的頁過期之前的分鐘數, 設置為0,則立刻過期

三、Page對象

每個aspx文件對應的一個page對象,.aspx頁面與后臺.cs代碼類(局部類)合并生成頁面類,Page對象是頁面類的實例。所有的.aspx文件(Web窗體頁)都繼承自System.Web.UI.Page類

<%@ Page

		Language="C#" ---指明后臺使用C#語言

		AutoEventWireup="true" ---設置是否自動調用網頁Load事件,默認是true

		CodeBehind="WebDemo1.aspx.cs"---其.aspx文件上綁定的后臺代碼文件

		Inherits="ASP.NETDemo.Demo1.WebDemo1" ---后臺代碼類

%>

1.屬性

(1) IsPostBack:該屬性可以檢查.aspx頁是否為傳遞回服務器的頁面,常用于判斷頁面是否為首次加載。
如果為true則為回發響應,如果為false則為首次加載
(2) IsValid:該屬性用于判斷頁面中的所有輸入的內容是否應經通過驗證,它是一個布爾值的屬性。當需要使用服務器端驗證時,可以使用該屬性。
(3) IsCrossPagePostBack:該屬性判斷頁面是否使用跨頁提交,它是一個布爾值的屬性。
(4) Response屬性和Request屬性上面講過了

2.事件

Page類常用的事件及執行的先后順序:
(1) Page.PreInit 事件:在頁初始化開始時發生
(2) Page.Init 事件:當服務器控件初始化時發生;初始化是控件生存期的第一步。 (繼承自 Control。)
(3) Page.InitComplite事件:在頁初始化完成時發生
(4) Page.PreLoad事件:在頁 Load 事件之前發生
(5) Page.Load事件:當服務器控件加載到 Page 對象中時發生。 (繼承自 Control )
(6) Page.LoadComplete 事件:在頁生命周期的加載階段結束時發生
(7) Page.PreRender事件 :在加載 Control 對象之后、呈現之前發生。 (繼承自 Control。)
(8) Page.PreRenderComplete 事件:在呈現頁內容之前發生

四、ViewState對象

視圖狀態,在 ASP .NET 中,當一個表單被提交時,表單會連同表單值一起出現在瀏覽器窗口中。如何做到的呢?這是因為 ASP .NET 維持了您的 ViewState。 ViewState 會在頁面被提交到服務器時表明它的狀態。這個狀態是通過在帶有 < form runat=“server”> 控件的每個頁面上放置一個隱藏域定義的。
這個對象是ASP.NET中特有的對象,在其他語言的后端技術中沒有這個對象

protected void Page_Load(object sender, EventArgs e)
    {
      if (!IsPostBack)//如果是第一次訪問
      {
        //先將Count的值設為0,并且保存在ViewState中
        ViewState["count"] = 0;
      }
    }
    protected void btnAdd_Click(object sender, EventArgs e)
    {
      //每次點擊按鈕先取出ViewState中的值并且累加之后再次賦給ViewState
      ViewState["count"] = Convert.ToInt32(ViewState["count"]) + 1;
      Literal1.Text = ViewState["count"].ToString();
    }
  }

使用ViewState實現頁面信息的保存

保存數據

ViewState對象存儲數據[鍵值對]Key=Value

取出數據

根據Key值取出Value值

總結

(1) ViewState中保存的數據全部被轉換成object類型,取出時務必強制轉換成特定類型
(2) ViewState只能在同一個頁面的連續多次請求之間保存信息,頁面跳轉后信息就會丟失

ViewState的本質

ViewState的本質是一個隱藏域,和原始的.aspx文件中的多出來的標簽一樣,都是一個隱藏域,第一次創建ViewState對象其實是創建了一個隱藏域

ASP.NET內置對象有什么用

五、Session對象

使用方式和ViewState相似
Session對象用于存儲在多個頁面調用之間特定用戶的信息。Session對象只針對單一網站使用者,不同的客戶端無法相互訪問。Session對象中止聯機機器離線時,也就是當網站使用者關掉瀏覽器或者超過設定Session對象的有效時間,Session對象變量就會關閉。

1.Session的原理

Session是服務器將客戶端的數據代替客戶端做出對應的保存,問題是不同用戶在選擇商品時,Session是如何區分不同用戶的選擇?
(1) 服務器根據SessionID來區分不同的用戶,它是一個很長的字符串
(2)SessionID在用戶第一次訪問時由服務器產生并由用戶瀏覽器保存
(3)用戶每次的操作,瀏覽器在向服務器請求時都會帶著自己的SessionID

Web服務器是如何判斷用戶是第一次請求并為其生成SessionID?
(1)用戶第一次打開瀏覽器并登陸網頁,瀏覽器中沒有任何SessionID。
(2)用戶把當前網站的網頁全部關閉,再次登陸網頁,前面的SessionID就會丟失
(3)用戶使用不同瀏覽器登錄網頁,不同瀏覽器之間的Session無法共享。

ASP.NET內置對象有什么用

2.屬性

(1) SessionID:包含唯一的用戶會話標識符
(2)Timeout:用戶設置用戶超時的時間,單位為分鐘

3.方法

(1) Add(string name,object value):添加“鍵-值”對
(2)Remove(string name):根據鍵刪除指定項
(3) Clear():從會話狀態集合中移除所有的鍵值對
(4)Abandon():結束Session,取消當前會話

4.用途

(1)不用頁面之間需要傳遞較為復雜的數據(對象)
(2)保存用戶的登錄信息,未登錄者禁止訪問相關頁面

六、Cookie對象

Cookie對象一般用于在客戶端保存一些針對某個用戶的信息。
Cookie本質上只是一小段文本字符串,該字符串一般保存在用戶計算機特定文件夾下的某個文件中,每個Cookie都保存到一個對應的文件中。它提供了在客戶端存儲用戶特定信息的手段。例如保存用戶登錄某個網站的用戶名、保存用戶購物時選擇的某些選項、保存是否已經投票以防止重復投票等。
當用戶訪問某個服務器時,如果服務器要求將Cookie信息也傳遞過來,則瀏覽器就會將其附加到HTTP頭文件中發送給服務器。另外,服務器也可以通知瀏覽器將某個Cookie信息保存到計算機上,但是,一旦將Cookie保存在客戶端計算機上,則只有創建該Cookie的網站才能讀取它。
一般情況下,服務器都會給Cookie信息限制一個有效的時間段,當超過保存的有效期時,瀏覽器就會自動將其刪除。如果沒有設置Cookie的有效期,實際上只是將Cookie作為用戶會話信息的一部分進行維護,當用戶關閉瀏覽器時就會自動丟棄Cookie,而不會將其存儲在用戶的硬盤上。
不過,由于有些網站會利用這種技術隨意在客戶端保存訪問信息,導致用戶對其很反感,因此,有些用戶可能會通過瀏覽器設置禁用Cookie,所以使用這種技術時,最好先檢測是否可以在客戶端存儲Cookie。

1.Cookie的特點

(1) 存儲少量不重要的數據
(2)存儲在客戶端的文本文件中(必須要設置有效期,否則不被存儲)
(3)安全性差
(4)存儲的數據類型-字符串
(5)瀏覽器窗口無關,但是與訪問的站點有關
(6) 具體特定的過期時間和日期
(7) 在客戶端存儲后,將隨著瀏覽器對相關網站頁面請求而一并發送到服務器

2.Cookie的創建

Response.Cookies["User"].Value = TextBox1.Text;
HttpCookie cookie = new HttpCookie("User",TextBox1.Text);
Response.Cookies.Add(cookie);

注意:創建Cookie使用Response對象,讀取Cookie使用Request對象

string str=Request.Cookies["User"].Value;

3.屬性

Response.Cookie.Keys:獲取Cookie變量名或者根據其索引獲取變量值
Response.Cookies.Count:獲取Cookie變量的數量
Response.Cookies.AllKeys:將Cookies對象中所有的變量名存儲到數組中。

4.方法

Response.Cookies.Set:用于更新Cookie的變量值
Response.Cookies.Remove:用于刪除Cookie變量
Response.Cookies.Get:用Cookie變量名稱或者索引值獲取變量值。
Response.Cookies.Clear:清除Cookie內所有的變量
Response.Cookies.Add:用于Cookie對象中添加Cookie變量。

5.Cookies工作原理圖

ASP.NET內置對象有什么用

七、Application對象

1.作用

應用程序級別的數據保存(類似于在CS開發中在Winform或WPF中聲明的全局變量,這個變量一般在程序開啟的時候創建好了,在程序使用過程中一直存在,但是會跟著不同的程序功能存儲的數據可能會發生變化)
相當于在BS服務器中存儲的一個變量,只要服務器本次開啟那么這個數據就被創建存儲,只要服務器不關閉那么這個數據就一直存在,在所有客戶端訪問過程中都可以對這個對象存儲的數據進行訪問和更改
使用方式和Session一樣采用“鍵值”對的方式

2.特征

(1)位置:服務器內存,執行速度快
(2)使用范圍:整個應用程序中
(3)類型:任意類型
(4)生命周期:應用程序開始創建到銷毀

3.使用場合

例如統計這個站點的訪問量,或者監控當前站點的訪問人數

4.Global.asax文件

全局應用程序類:Global.asax,可以理解為Application對象主要在這個全局應用程序類中使用
(1) 處理應用程序級別的事件的可選文件
(2)必須放在應用程序的根目錄下

常用事件說明
Application_Start接收第一個請求時觸發
Application_End應用程序結束時觸發
Session_Start某用戶第一訪問時觸發
Session_End某用戶退出應用程序時觸發

ASP.NET內置對象有什么用

public class Global : System.Web.HttpApplication
  {
    //1.服務器開啟
    protected void Application_Start(object sender, EventArgs e)
    {
      Application.Lock();//鎖定訪問
      Application["Uservisit"] = 0;//網站的被訪問的次數
      Application["CurrentUsers"] = 0;//在線人數
      Application.UnLock();//取消鎖定
    }
    //4.客戶端首次訪問
    protected void Session_Start(object sender, EventArgs e)
    {
      Application.Lock();
      Application["Uservisit"] = (int)Application["Uservisit"] + 1;
      Application["CurrentUsers"] = (int)Application["CurrentUsers"] + 1;
      Application.UnLock();
    }
    //5.客戶端退出訪問結束會話
    protected void Session_End(object sender, EventArgs e)
    {
      //在web.config文件中把SessionState模式設置為InPro時才會已發此事件
      Application.Lock();
      Application["CurrentUsers"] = (int)Application["CurrentUsers"] - 1;
      Application.UnLock();
    }
    //2.服務器開始接收請求
    protected void Application_BeginRequest(object sender, EventArgs e)
    {
      
    }
    //3.服務器開始處理請求
    protected void Application_AuthenticateRequest(object sender, EventArgs e)
    {

    }
    //錯誤日志記錄
    protected void Application_Error(object sender, EventArgs e)
    {

    }
    
    //6.服務器結束
    protected void Application_End(object sender, EventArgs e)
    {

    }
  }

5.Application工作原理圖

ASP.NET內置對象有什么用

八、Server對象

Server對象是HttpServerUtility的一個實例,它提供了對服務器上方法和屬性訪問,用于訪問服務器上的資源。

1.屬性

MarhineName:獲取服務器的計算機名稱
ScriptTimeout:獲取和設置請求超時值

2.方法

Execute:在當前請求的上下文中執行指定資源的處理程序,然后將控制返回給處理程序
HtmlDecode:對已被編碼以消除無效的HTML字符的字符串進行解碼
HtmlEncode:對要在瀏覽器中顯示的字符進行編碼
MapPath:返回與web服務器上的指定虛擬路徑相對應的物理文件路徑
UrlDecode:對字符串進行解碼,該字符串為了進行HTTP傳輸而編碼并在URL中發送到服務器
UrlEncode:編碼字符串,以便通過URL從Web服務器到客戶端經行可靠的HTTP傳輸
Transfer:終止當前頁的執行,并為當前請求開始執行新頁

九、ASP.NET常用對象比較

| 對象名稱 |

存儲位置有效時間信息共享范圍
Request/Response請求和響應的過程中請求結束之前
ViewState被請求的頁面中頁面關閉之前
SessionWeb服務器端規定的時間內
Cookie客戶端硬盤中規定的時間內
ApplicationWeb服務器端IIS重啟之前

在VS上按F1鍵,進入微軟官方幫助文檔,可查看其它更多內置對象

“ASP.NET內置對象有什么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

百色市| 自贡市| 交城县| 陇西县| 鹤岗市| 九台市| 淮北市| 大港区| 贡觉县| 马鞍山市| 闸北区| 伊吾县| 凤凰县| 通州区| 海口市| 锡林浩特市| 三穗县| 乌审旗| 海伦市| 成武县| 峨眉山市| 杂多县| 依兰县| 集贤县| 灌云县| 鞍山市| 元江| 海晏县| 湟源县| 蓝田县| 兰州市| 榆树市| 彩票| 永仁县| 苏尼特右旗| 蓬安县| 岳西县| 宜川县| 象州县| 鞍山市| 临桂县|