在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C#/ 服務(wù)器端
調(diào)試
管理狀態(tài)
Panel 控件
Web 服務(wù)
語言集成查詢
數(shù)據(jù)源
基礎(chǔ)控件
廣告輪轉(zhuǎn)器
服務(wù)器端
服務(wù)器控件
ADO.NET
多線程
HTML 服務(wù)器
生命周期
Ajax 控制
客戶端
異常處理
環(huán)境設(shè)置
部署
個(gè)性化
驗(yàn)證器
多視圖
日歷
文件上傳
ASP.NET - 數(shù)據(jù)綁定
數(shù)據(jù)庫存取
實(shí)例
自定義控件
簡介
配置
數(shù)據(jù)緩存
安全性
指令
事件處理

服務(wù)器端

我們已經(jīng)研究了頁面生命周期和一個(gè)頁面如何包含不同的控件。頁面本身作為一個(gè)控制對(duì)象被實(shí)例化。所有的 web 表單基本上是 ASP.NET 頁面類的實(shí)例。頁面類有以下極其有用的屬性,與內(nèi)部對(duì)象所對(duì)應(yīng):

  • 會(huì)話
  • 應(yīng)用程序
  • 緩存
  • 請(qǐng)求
  • 響應(yīng)
  • 服務(wù)器
  • 用戶
  • 跟蹤

我們會(huì)在適當(dāng)?shù)臅r(shí)間里討論每一個(gè)對(duì)象。在本教程中我們將會(huì)探索 Server 對(duì)象,Request 對(duì)象和 Response 對(duì)象。

Server 對(duì)象

ASP.NET 中的服務(wù)器對(duì)象是 System.Web.HttpServerUtility 類的一個(gè)實(shí)例。The HttpServerUtility 類提供了大量的屬性和方法來執(zhí)行不同的工作。

Server 對(duì)象的屬性和方法

HttpServerUtility 類的方法和屬性通過由 ASP.NET 提供的內(nèi)部服務(wù)器對(duì)象公開的。

以下表格提供了 HttpServerUtility 類一系列的屬性。

屬性 描述
MachineName 服務(wù)器電腦的名稱
ScriptTimeOut 以秒為單位獲取和設(shè)置請(qǐng)求超時(shí)的值

以下表格提供了一些重要的方法:

方法 描述
CreateObject(String) 創(chuàng)建一個(gè) COM 對(duì)象的實(shí)例,由其 ProgID 驗(yàn)證。
CreateObject(Type) 創(chuàng)建一個(gè) COM 對(duì)象的實(shí)例,由其 Type 驗(yàn)證。
Equals(Object) 決定具體的對(duì)象是否和現(xiàn)有對(duì)象一致。
Execute(String) 在當(dāng)前請(qǐng)求的上下文中執(zhí)行處理應(yīng)用程序指定的虛擬路徑。
Execute(String, Boolean) 在當(dāng)前請(qǐng)求的上下文中執(zhí)行處理程序指定的虛擬路徑,指定是否清除 QueryString 及表單集合。
GetLastError 返回之前的異常。
GetType 獲取現(xiàn)有實(shí)例的類型。
HtmlEncode 將一個(gè)普通的字符串變成合法的 HTML 字符串。
HtmlDecode 將一個(gè) Html 字符串轉(zhuǎn)化成一個(gè)普通的字符串。
ToString 返回一個(gè)表示當(dāng)前對(duì)象的字符串。
Transfer(String) 對(duì)于當(dāng)前請(qǐng)求,終止當(dāng)前頁面的執(zhí)行并通過指定頁面的 URL 路徑,開始執(zhí)行一個(gè)新頁面。
UrlDecode 將一個(gè) URL 字符串轉(zhuǎn)化成一個(gè)普通的字符串。
UrlEncodeToken 與 UrlEncode 作用相同,但是在一個(gè)字節(jié)數(shù)組中,包含以 Base64 編碼的數(shù)據(jù)。
UrlDecodeToken 與 UrlDecode 工作相同,但是在一個(gè)字節(jié)數(shù)組中,包含以 Base64 編碼的數(shù)據(jù)。
MapPath 返回與指定的虛擬服務(wù)器上的文件路徑相對(duì)應(yīng)的物理路徑。
Transfer 在當(dāng)前應(yīng)用程序上轉(zhuǎn)移執(zhí)行到另一個(gè) web 頁面。

Request 對(duì)象

請(qǐng)求對(duì)象是 System.Web.HttpRequest 類的一個(gè)實(shí)例。它代表了 HTTP 請(qǐng)求的值和屬性,使頁面加載到瀏覽器中。

此對(duì)象所呈現(xiàn)的信息被封裝在更高級(jí)別的抽象中(web 控件模型)。然而,這個(gè)對(duì)象可以幫助檢查一些信息,例如客戶端瀏覽器和信息記錄程序。

Request 對(duì)象的屬性和方法

下表提供了請(qǐng)求對(duì)象一些值得注意的屬性:

屬性 描述
AcceptTypes 獲取一個(gè)用戶支持的 MIME 接受類型的字符串?dāng)?shù)組。
ApplicationPath 在服務(wù)器上獲取 ASP.NET 應(yīng)用程序的真實(shí)應(yīng)用程序根路徑。
Browser 獲取或設(shè)置關(guān)于請(qǐng)求用戶瀏覽器能力的信息。
ContentEncoding 獲取或設(shè)置字符集的實(shí)體。
ContentLength 指定由客戶端發(fā)送的內(nèi)容的長度以字節(jié)為單位。
ContentType 獲取或設(shè)置傳入請(qǐng)求的 MIME 內(nèi)容類型。
Cookies 獲取客戶端發(fā)送的 cookies 集合。
FilePath 獲取當(dāng)前請(qǐng)求的真實(shí)路徑。
Files 以多部分的 MIME 格式獲取客戶端上傳文件的集合。
Form 獲取表單變量的集合。
Headers 獲取 HTTP 標(biāo)題的集合。
HttpMethod 獲取用戶使用的 HTTP 數(shù)據(jù)轉(zhuǎn)移方法(如 GET,POST,或者 HEAD)
InputStream 獲取傳入的 HTTP 的實(shí)體內(nèi)容。
IsSecureConnection 獲取一個(gè)值,該值指示 HTTP 連接是否使用安全套接字(即HTTPS)。
QueryString 獲取 HTTP 詢問字符串變量的集合。
RawUrl 獲取當(dāng)前請(qǐng)求的原始 URL。
RequestType 獲取或設(shè)置由用戶使用的 HTTP 數(shù)據(jù)轉(zhuǎn)移方法(GET 或者 POST)。
ServerVariables 獲取 Web 服務(wù)器變量的集合。
TotalBytes 獲取現(xiàn)有輸入流的字節(jié)數(shù)。
Url 獲取關(guān)于現(xiàn)有請(qǐng)求的 URL 的信息。
UrlReferrer 獲取關(guān)于與現(xiàn)有 URL 相鏈接的客戶端之前的請(qǐng)求的 URL 信息。
UserAgent 獲取客戶端瀏覽器的原始用戶代理字符串。
UserHostAddress 獲取遠(yuǎn)程客戶機(jī)的 IP 主機(jī)地址。
UserHostName 獲取遠(yuǎn)程客戶機(jī)的 DNS 名稱。
UserLanguages 獲取客戶端語言首選項(xiàng)的排序字符串?dāng)?shù)組。

下表提供了一些重要的方法:

方法 描述
BinaryRead 從當(dāng)前的輸入流中執(zhí)行一個(gè)指定字節(jié)數(shù)的二進(jìn)制讀數(shù)。
Equals(Object) 決定指定對(duì)象是否等同于現(xiàn)有對(duì)象。(繼承自對(duì)象)
GetType 獲取現(xiàn)有實(shí)例的類型。
MapImageCoordinates 將傳入的象場表單參數(shù)繪制成適當(dāng)?shù)?x 坐標(biāo)和 y 坐標(biāo)值。
MapPath(String) 將指定的真實(shí)路徑繪制成一個(gè)物理路徑。
SaveAs 在硬盤中存為一個(gè) HTTP 請(qǐng)求。
ToString 返回一個(gè)代表現(xiàn)有對(duì)象的字符串。
ValidateInput 導(dǎo)致驗(yàn)證發(fā)生,通過訪問 Cookies,F(xiàn)orm,QueryString 屬性的集合。

Response 對(duì)象

響應(yīng)對(duì)象代表了服務(wù)器對(duì)于用戶請(qǐng)求的響應(yīng)。它是 System.Web.HttpResponse 類的一個(gè)實(shí)例。

在 ASP.NET 中,響應(yīng)對(duì)象在給用戶發(fā)送 HTML 文本的過程中不扮演任何重要的角色,因?yàn)榉?wù)器端控件有嵌套的、面向?qū)ο蟮姆椒▉碜晕页尸F(xiàn)。

然而,HttpResponse 對(duì)象提供了一些重要的功能,比如 cookie 特點(diǎn)和 Redirect() 方法。 Response.Redirect() 方法允許將用戶轉(zhuǎn)移到另一個(gè)頁面,在應(yīng)用程序內(nèi)部或應(yīng)用程序外部均可。它需要一個(gè)往返過程。

Response 對(duì)象的屬性和方法

下表提供了一些響應(yīng)對(duì)象值得注意的屬性:

屬性 描述
Buffer 獲取或設(shè)置一個(gè)值,表明是否緩沖輸出,并在完整的響應(yīng)程序結(jié)束后將其發(fā)送。
BufferOutput 獲取或設(shè)置一個(gè)值,表名是否緩沖輸出,并在完整頁面結(jié)束進(jìn)城后將其發(fā)送。
Charset 獲取或設(shè)置輸出流的 HTTP 字符集。
ContentEncoding 獲取或設(shè)置輸出流的 HTTP 字符集。
ContentType 獲取或設(shè)置輸出流的 HTTP MIME 類型。
Cookies 獲取相應(yīng) cookie 集合。
Expires 獲取或設(shè)置一個(gè)瀏覽器上緩存的頁面在到期前的分鐘數(shù)。
ExpiresAbsolute 獲取或設(shè)置從緩存中移除緩存信息的絕對(duì)日期和時(shí)間。
HeaderEncoding 獲取或設(shè)置一個(gè)編碼對(duì)象,代表現(xiàn)有標(biāo)題輸出流的編碼。
Headers 獲取響應(yīng)標(biāo)題的集合。
IsClientConnected 獲取一個(gè)值,表明用戶是否仍和服務(wù)器相連。
Output 使輸出的文本到輸出的 HTTP 響應(yīng)流。
OutputStream 使二進(jìn)制輸出到輸出的 HTTP 內(nèi)容本體。
RedirectLocation 獲取或設(shè)置 Http 標(biāo)題位置的值。
Status 設(shè)置狀態(tài)欄,返回給客戶端。
StatusCode 獲取或設(shè)置返回到客戶端的 HTTP 輸出狀態(tài)碼。
StatusDescription 獲取或設(shè)置返回給客戶端的 HTTP 輸出狀態(tài)字符串。
SubStatusCode 獲取或設(shè)置一個(gè)值限制響應(yīng)的狀態(tài)碼。
SuppressContent 獲取或設(shè)置一個(gè)值,表明是否發(fā)送 HTTP 內(nèi)容到客戶端。

下表提供了一些重要的方法:

方法 描述
AddHeader 給輸出流添加一個(gè) HTTP 標(biāo)題。提供 AddHeader 是為了 ASP 早期版本的兼容性。
AppendCookie 基礎(chǔ)設(shè)施為內(nèi)部 cookie 集合添加一個(gè) HTTP cookie。
AppendHeader 給輸出流添加一個(gè) HTTP 標(biāo)題。
AppendToLog 將自定義日志信息添加到 InterNET 信息服務(wù)(IIS)日志文件。
BinaryWrite 將一串二進(jìn)制字符寫入 HTTP 輸出流。
ClearContent 清除緩沖流中的所有內(nèi)容輸出。
Close 關(guān)閉客戶端套接字。
End 發(fā)送所有現(xiàn)有的緩沖輸出給客戶端,停止頁面執(zhí)行,并且引發(fā) EndRequest 事件。
Equals(Object) 確定指定對(duì)象是否等同于現(xiàn)有對(duì)象。
Flush 發(fā)送所有現(xiàn)有緩沖輸出到客戶端。
GetType 獲取現(xiàn)有實(shí)例的類型。
Pics 將一個(gè) HTTP PICS-Label 標(biāo)題附加到輸出流。
Redirect(String) 將請(qǐng)求重定向到一個(gè)新的 URL 并指定新的 URL。
Redirect(String, Boolean) 將客戶端重定向到一個(gè)新的 URL。指定新的 URL 并且之指定現(xiàn)有頁面是否應(yīng)該終止。
SetCookie 在 cookie 集合中更新現(xiàn)存 cookie。
ToString 返回代表現(xiàn)有對(duì)象的一個(gè)字符串
TransmitFile(String) 直接編寫指定的文件到一個(gè) HTTP 響應(yīng)輸出流中,不需要在內(nèi)存中緩沖。
Write(Char) 編寫一個(gè)字符到一個(gè) HTTP 響應(yīng)輸出流中。
Write(Object) 編寫一個(gè)對(duì)象到一個(gè) HTTP 響應(yīng)流中。
Write(String) 編寫一個(gè)字符串到一個(gè) HTTP 響應(yīng)輸出流中。
WriteFile(String) 直接編寫指定文件的內(nèi)容到一個(gè) HTTP 響應(yīng)輸出流中,作為一個(gè)文件塊。
WriteFile(String, Boolean) 直接編寫指定文件的內(nèi)容到一個(gè) HTTP 響應(yīng)輸出流中,作為一個(gè)內(nèi)存塊。

示例

以下簡單的例子有一個(gè)文本框控件,用戶可以輸入名稱,一個(gè)按鈕可以發(fā)送信息到服務(wù)器,還有一個(gè)標(biāo)簽控件來顯示客戶端計(jì)算機(jī)的 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 點(diǎn)擊后的代碼:

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())
   }
}

運(yùn)行頁面查看以下結(jié)果:

http://wiki.jikexueyuan.com/project/asp-net/images/asp.net_server_side.jpg" alt="image" />

上一篇:事件處理下一篇:自定義控件