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

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

服務(wù)器端

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

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

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

Server 對(duì)象

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

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

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

以下表格提供了 HttpServerUtility 類(lèi)一系列的屬性。

屬性 描述
MachineName 服務(wù)器電腦的名稱(chēng)
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í)例的類(lèi)型。
HtmlEncode 將一個(gè)普通的字符串變成合法的 HTML 字符串。
HtmlDecode 將一個(gè) Html 字符串轉(zhuǎn)化成一個(gè)普通的字符串。
ToString 返回一個(gè)表示當(dāng)前對(duì)象的字符串。
Transfer(String) 對(duì)于當(dāng)前請(qǐng)求,終止當(dāng)前頁(yè)面的執(zhí)行并通過(guò)指定頁(yè)面的 URL 路徑,開(kāi)始執(zhí)行一個(gè)新頁(yè)面。
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 頁(yè)面。

Request 對(duì)象

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

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

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

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

屬性 描述
AcceptTypes 獲取一個(gè)用戶(hù)支持的 MIME 接受類(lèi)型的字符串?dāng)?shù)組。
ApplicationPath 在服務(wù)器上獲取 ASP.NET 應(yīng)用程序的真實(shí)應(yīng)用程序根路徑。
Browser 獲取或設(shè)置關(guān)于請(qǐng)求用戶(hù)瀏覽器能力的信息。
ContentEncoding 獲取或設(shè)置字符集的實(shí)體。
ContentLength 指定由客戶(hù)端發(fā)送的內(nèi)容的長(zhǎng)度以字節(jié)為單位。
ContentType 獲取或設(shè)置傳入請(qǐng)求的 MIME 內(nèi)容類(lèi)型。
Cookies 獲取客戶(hù)端發(fā)送的 cookies 集合。
FilePath 獲取當(dāng)前請(qǐng)求的真實(shí)路徑。
Files 以多部分的 MIME 格式獲取客戶(hù)端上傳文件的集合。
Form 獲取表單變量的集合。
Headers 獲取 HTTP 標(biāo)題的集合。
HttpMethod 獲取用戶(hù)使用的 HTTP 數(shù)據(jù)轉(zhuǎn)移方法(如 GET,POST,或者 HEAD)
InputStream 獲取傳入的 HTTP 的實(shí)體內(nèi)容。
IsSecureConnection 獲取一個(gè)值,該值指示 HTTP 連接是否使用安全套接字(即HTTPS)。
QueryString 獲取 HTTP 詢(xún)問(wèn)字符串變量的集合。
RawUrl 獲取當(dāng)前請(qǐng)求的原始 URL。
RequestType 獲取或設(shè)置由用戶(hù)使用的 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 相鏈接的客戶(hù)端之前的請(qǐng)求的 URL 信息。
UserAgent 獲取客戶(hù)端瀏覽器的原始用戶(hù)代理字符串。
UserHostAddress 獲取遠(yuǎn)程客戶(hù)機(jī)的 IP 主機(jī)地址。
UserHostName 獲取遠(yuǎn)程客戶(hù)機(jī)的 DNS 名稱(chēng)。
UserLanguages 獲取客戶(hù)端語(yǔ)言首選項(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í)例的類(lèi)型。
MapImageCoordinates 將傳入的象場(chǎng)表單參數(shù)繪制成適當(dāng)?shù)?x 坐標(biāo)和 y 坐標(biāo)值。
MapPath(String) 將指定的真實(shí)路徑繪制成一個(gè)物理路徑。
SaveAs 在硬盤(pán)中存為一個(gè) HTTP 請(qǐng)求。
ToString 返回一個(gè)代表現(xiàn)有對(duì)象的字符串。
ValidateInput 導(dǎo)致驗(yàn)證發(fā)生,通過(guò)訪問(wèn) Cookies,F(xiàn)orm,QueryString 屬性的集合。

Response 對(duì)象

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

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

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

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

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

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

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

方法 描述
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)制字符寫(xiě)入 HTTP 輸出流。
ClearContent 清除緩沖流中的所有內(nèi)容輸出。
Close 關(guān)閉客戶(hù)端套接字。
End 發(fā)送所有現(xiàn)有的緩沖輸出給客戶(hù)端,停止頁(yè)面執(zhí)行,并且引發(fā) EndRequest 事件。
Equals(Object) 確定指定對(duì)象是否等同于現(xiàn)有對(duì)象。
Flush 發(fā)送所有現(xiàn)有緩沖輸出到客戶(hù)端。
GetType 獲取現(xiàn)有實(shí)例的類(lèi)型。
Pics 將一個(gè) HTTP PICS-Label 標(biāo)題附加到輸出流。
Redirect(String) 將請(qǐng)求重定向到一個(gè)新的 URL 并指定新的 URL。
Redirect(String, Boolean) 將客戶(hù)端重定向到一個(gè)新的 URL。指定新的 URL 并且之指定現(xiàn)有頁(yè)面是否應(yīng)該終止。
SetCookie 在 cookie 集合中更新現(xiàn)存 cookie。
ToString 返回代表現(xiàn)有對(duì)象的一個(gè)字符串
TransmitFile(String) 直接編寫(xiě)指定的文件到一個(gè) HTTP 響應(yīng)輸出流中,不需要在內(nèi)存中緩沖。
Write(Char) 編寫(xiě)一個(gè)字符到一個(gè) HTTP 響應(yīng)輸出流中。
Write(Object) 編寫(xiě)一個(gè)對(duì)象到一個(gè) HTTP 響應(yīng)流中。
Write(String) 編寫(xiě)一個(gè)字符串到一個(gè) HTTP 響應(yīng)輸出流中。
WriteFile(String) 直接編寫(xiě)指定文件的內(nèi)容到一個(gè) HTTP 響應(yīng)輸出流中,作為一個(gè)文件塊。
WriteFile(String, Boolean) 直接編寫(xiě)指定文件的內(nèi)容到一個(gè) HTTP 響應(yīng)輸出流中,作為一個(gè)內(nèi)存塊。

示例

以下簡(jiǎn)單的例子有一個(gè)文本框控件,用戶(hù)可以輸入名稱(chēng),一個(gè)按鈕可以發(fā)送信息到服務(wù)器,還有一個(gè)標(biāo)簽控件來(lái)顯示客戶(hù)端計(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)行頁(yè)面查看以下結(jié)果:

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

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