W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
我們已經(jīng)研究了頁面生命周期和一個頁面如何包含不同的控件。頁面本身作為一個控制對象被實例化。所有的 web 表單基本上是 ASP.NET 頁面類的實例。頁面類有以下極其有用的屬性,與內(nèi)部對象所對應:
我們會在適當?shù)臅r間里討論每一個對象。在本教程中我們將會探索 Server 對象,Request 對象和 Response 對象。
ASP.NET 中的服務器對象是 System.Web.HttpServerUtility 類的一個實例。The HttpServerUtility 類提供了大量的屬性和方法來執(zhí)行不同的工作。
HttpServerUtility 類的方法和屬性通過由 ASP.NET 提供的內(nèi)部服務器對象公開的。
以下表格提供了 HttpServerUtility 類一系列的屬性。
屬性 | 描述 |
---|---|
MachineName | 服務器電腦的名稱 |
ScriptTimeOut | 以秒為單位獲取和設置請求超時的值 |
以下表格提供了一些重要的方法:
方法 | 描述 |
---|---|
CreateObject(String) | 創(chuàng)建一個 COM 對象的實例,由其 ProgID 驗證。 |
CreateObject(Type) | 創(chuàng)建一個 COM 對象的實例,由其 Type 驗證。 |
Equals(Object) | 決定具體的對象是否和現(xiàn)有對象一致。 |
Execute(String) | 在當前請求的上下文中執(zhí)行處理應用程序指定的虛擬路徑。 |
Execute(String, Boolean) | 在當前請求的上下文中執(zhí)行處理程序指定的虛擬路徑,指定是否清除 QueryString 及表單集合。 |
GetLastError | 返回之前的異常。 |
GetType | 獲取現(xiàn)有實例的類型。 |
HtmlEncode | 將一個普通的字符串變成合法的 HTML 字符串。 |
HtmlDecode | 將一個 Html 字符串轉化成一個普通的字符串。 |
ToString | 返回一個表示當前對象的字符串。 |
Transfer(String) | 對于當前請求,終止當前頁面的執(zhí)行并通過指定頁面的 URL 路徑,開始執(zhí)行一個新頁面。 |
UrlDecode | 將一個 URL 字符串轉化成一個普通的字符串。 |
UrlEncodeToken | 與 UrlEncode 作用相同,但是在一個字節(jié)數(shù)組中,包含以 Base64 編碼的數(shù)據(jù)。 |
UrlDecodeToken | 與 UrlDecode 工作相同,但是在一個字節(jié)數(shù)組中,包含以 Base64 編碼的數(shù)據(jù)。 |
MapPath | 返回與指定的虛擬服務器上的文件路徑相對應的物理路徑。 |
Transfer | 在當前應用程序上轉移執(zhí)行到另一個 web 頁面。 |
請求對象是 System.Web.HttpRequest 類的一個實例。它代表了 HTTP 請求的值和屬性,使頁面加載到瀏覽器中。
此對象所呈現(xiàn)的信息被封裝在更高級別的抽象中(web 控件模型)。然而,這個對象可以幫助檢查一些信息,例如客戶端瀏覽器和信息記錄程序。
下表提供了請求對象一些值得注意的屬性:
屬性 | 描述 |
---|---|
AcceptTypes | 獲取一個用戶支持的 MIME 接受類型的字符串數(shù)組。 |
ApplicationPath | 在服務器上獲取 ASP.NET 應用程序的真實應用程序根路徑。 |
Browser | 獲取或設置關于請求用戶瀏覽器能力的信息。 |
ContentEncoding | 獲取或設置字符集的實體。 |
ContentLength | 指定由客戶端發(fā)送的內(nèi)容的長度以字節(jié)為單位。 |
ContentType | 獲取或設置傳入請求的 MIME 內(nèi)容類型。 |
Cookies | 獲取客戶端發(fā)送的 cookies 集合。 |
FilePath | 獲取當前請求的真實路徑。 |
Files | 以多部分的 MIME 格式獲取客戶端上傳文件的集合。 |
Form | 獲取表單變量的集合。 |
Headers | 獲取 HTTP 標題的集合。 |
HttpMethod | 獲取用戶使用的 HTTP 數(shù)據(jù)轉移方法(如 GET,POST,或者 HEAD) |
InputStream | 獲取傳入的 HTTP 的實體內(nèi)容。 |
IsSecureConnection | 獲取一個值,該值指示 HTTP 連接是否使用安全套接字(即HTTPS)。 |
QueryString | 獲取 HTTP 詢問字符串變量的集合。 |
RawUrl | 獲取當前請求的原始 URL。 |
RequestType | 獲取或設置由用戶使用的 HTTP 數(shù)據(jù)轉移方法(GET 或者 POST)。 |
ServerVariables | 獲取 Web 服務器變量的集合。 |
TotalBytes | 獲取現(xiàn)有輸入流的字節(jié)數(shù)。 |
Url | 獲取關于現(xiàn)有請求的 URL 的信息。 |
UrlReferrer | 獲取關于與現(xiàn)有 URL 相鏈接的客戶端之前的請求的 URL 信息。 |
UserAgent | 獲取客戶端瀏覽器的原始用戶代理字符串。 |
UserHostAddress | 獲取遠程客戶機的 IP 主機地址。 |
UserHostName | 獲取遠程客戶機的 DNS 名稱。 |
UserLanguages | 獲取客戶端語言首選項的排序字符串數(shù)組。 |
下表提供了一些重要的方法:
方法 | 描述 |
---|---|
BinaryRead | 從當前的輸入流中執(zhí)行一個指定字節(jié)數(shù)的二進制讀數(shù)。 |
Equals(Object) | 決定指定對象是否等同于現(xiàn)有對象。(繼承自對象) |
GetType | 獲取現(xiàn)有實例的類型。 |
MapImageCoordinates | 將傳入的象場表單參數(shù)繪制成適當?shù)?x 坐標和 y 坐標值。 |
MapPath(String) | 將指定的真實路徑繪制成一個物理路徑。 |
SaveAs | 在硬盤中存為一個 HTTP 請求。 |
ToString | 返回一個代表現(xiàn)有對象的字符串。 |
ValidateInput | 導致驗證發(fā)生,通過訪問 Cookies,F(xiàn)orm,QueryString 屬性的集合。 |
響應對象代表了服務器對于用戶請求的響應。它是 System.Web.HttpResponse 類的一個實例。
在 ASP.NET 中,響應對象在給用戶發(fā)送 HTML 文本的過程中不扮演任何重要的角色,因為服務器端控件有嵌套的、面向對象的方法來自我呈現(xiàn)。
然而,HttpResponse 對象提供了一些重要的功能,比如 cookie 特點和 Redirect() 方法。 Response.Redirect() 方法允許將用戶轉移到另一個頁面,在應用程序內(nèi)部或應用程序外部均可。它需要一個往返過程。
下表提供了一些響應對象值得注意的屬性:
屬性 | 描述 |
---|---|
Buffer | 獲取或設置一個值,表明是否緩沖輸出,并在完整的響應程序結束后將其發(fā)送。 |
BufferOutput | 獲取或設置一個值,表名是否緩沖輸出,并在完整頁面結束進城后將其發(fā)送。 |
Charset | 獲取或設置輸出流的 HTTP 字符集。 |
ContentEncoding | 獲取或設置輸出流的 HTTP 字符集。 |
ContentType | 獲取或設置輸出流的 HTTP MIME 類型。 |
Cookies | 獲取相應 cookie 集合。 |
Expires | 獲取或設置一個瀏覽器上緩存的頁面在到期前的分鐘數(shù)。 |
ExpiresAbsolute | 獲取或設置從緩存中移除緩存信息的絕對日期和時間。 |
HeaderEncoding | 獲取或設置一個編碼對象,代表現(xiàn)有標題輸出流的編碼。 |
Headers | 獲取響應標題的集合。 |
IsClientConnected | 獲取一個值,表明用戶是否仍和服務器相連。 |
Output | 使輸出的文本到輸出的 HTTP 響應流。 |
OutputStream | 使二進制輸出到輸出的 HTTP 內(nèi)容本體。 |
RedirectLocation | 獲取或設置 Http 標題位置的值。 |
Status | 設置狀態(tài)欄,返回給客戶端。 |
StatusCode | 獲取或設置返回到客戶端的 HTTP 輸出狀態(tài)碼。 |
StatusDescription | 獲取或設置返回給客戶端的 HTTP 輸出狀態(tài)字符串。 |
SubStatusCode | 獲取或設置一個值限制響應的狀態(tài)碼。 |
SuppressContent | 獲取或設置一個值,表明是否發(fā)送 HTTP 內(nèi)容到客戶端。 |
下表提供了一些重要的方法:
方法 | 描述 |
---|---|
AddHeader | 給輸出流添加一個 HTTP 標題。提供 AddHeader 是為了 ASP 早期版本的兼容性。 |
AppendCookie | 基礎設施為內(nèi)部 cookie 集合添加一個 HTTP cookie。 |
AppendHeader | 給輸出流添加一個 HTTP 標題。 |
AppendToLog | 將自定義日志信息添加到 InterNET 信息服務(IIS)日志文件。 |
BinaryWrite | 將一串二進制字符寫入 HTTP 輸出流。 |
ClearContent | 清除緩沖流中的所有內(nèi)容輸出。 |
Close | 關閉客戶端套接字。 |
End | 發(fā)送所有現(xiàn)有的緩沖輸出給客戶端,停止頁面執(zhí)行,并且引發(fā) EndRequest 事件。 |
Equals(Object) | 確定指定對象是否等同于現(xiàn)有對象。 |
Flush | 發(fā)送所有現(xiàn)有緩沖輸出到客戶端。 |
GetType | 獲取現(xiàn)有實例的類型。 |
Pics | 將一個 HTTP PICS-Label 標題附加到輸出流。 |
Redirect(String) | 將請求重定向到一個新的 URL 并指定新的 URL。 |
Redirect(String, Boolean) | 將客戶端重定向到一個新的 URL。指定新的 URL 并且之指定現(xiàn)有頁面是否應該終止。 |
SetCookie | 在 cookie 集合中更新現(xiàn)存 cookie。 |
ToString | 返回代表現(xiàn)有對象的一個字符串 |
TransmitFile(String) | 直接編寫指定的文件到一個 HTTP 響應輸出流中,不需要在內(nèi)存中緩沖。 |
Write(Char) | 編寫一個字符到一個 HTTP 響應輸出流中。 |
Write(Object) | 編寫一個對象到一個 HTTP 響應流中。 |
Write(String) | 編寫一個字符串到一個 HTTP 響應輸出流中。 |
WriteFile(String) | 直接編寫指定文件的內(nèi)容到一個 HTTP 響應輸出流中,作為一個文件塊。 |
WriteFile(String, Boolean) | 直接編寫指定文件的內(nèi)容到一個 HTTP 響應輸出流中,作為一個內(nèi)存塊。 |
以下簡單的例子有一個文本框控件,用戶可以輸入名稱,一個按鈕可以發(fā)送信息到服務器,還有一個標簽控件來顯示客戶端計算機的 URL。
內(nèi)容文件:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
Inherits="server_side._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
Enter your name:
<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Submit" />
<br />
<asp:Label ID="Label1" runat="server"/>
</div>
</form>
</body>
</html>
Button1_Click 點擊后的代碼:
protected void Button1_Click(object sender, EventArgs e) {
if (!String.IsNullOrEmpty(TextBox1.Text)) {
// Access the HttpServerUtility methods through
// the intrinsic Server object.
Label1.Text = "Welcome, " + Server.HtmlEncode(TextBox1.Text) + ". <br/> The url is " + Server.UrlEncode(Request.Url.ToString())
}
}
運行頁面查看以下結果:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: