ページのライフサイクルと、ページにさまざまなコントロールを含める方法について説明しました。ページ自体はコントロール オブジェクトとしてインスタンス化されます。すべての Web フォームは基本的に ASP.NET ページ クラスのインスタンスです。ページ クラスには、内部オブジェクトに対応する次の非常に便利なプロパティがあります。
セッション
アプリ
キャッシュ
聞く
応答
サーバ
ユーザー
追跡
それぞれのオブジェクトについては、適切なタイミングで説明します。このチュートリアルでは、Server オブジェクト、Request オブジェクト、Response オブジェクトについて説明します。
ASP.NET のサーバー オブジェクトは、System.Web.HttpServerUtility クラスのインスタンスです。 HttpServerUtility クラスは、さまざまなタスクを実行するための多数のプロパティとメソッドを提供します。
HttpServerUtility クラスのメソッドとプロパティは、ASP.NET によって提供される内部サーバー オブジェクトを通じて公開されます。
次の表に、HttpServerUtility クラスの一連のプロパティを示します。
財産 | 説明する |
---|---|
マシン名 | サーバーコンピュータ名 |
スクリプトタイムアウト | リクエストのタイムアウト値を秒単位で取得および設定します。 |
次の表に、いくつかの重要なメソッドを示します。
方法 | 説明する |
---|---|
CreateObject(文字列) | ProgID によって検証される COM オブジェクトのインスタンスを作成します。 |
オブジェクトの作成(タイプ) | COM オブジェクトのインスタンスを作成し、その型によって検証します。 |
等しい(オブジェクト) | 特定のオブジェクトが既存のオブジェクトと一致しているかどうかを判断します。 |
実行(文字列) | 現在のリクエストのコンテキストで、処理アプリケーションによって指定された仮想パスを実行します。 |
実行(文字列、ブール値) | 現在のリクエストのコンテキストでハンドラーによって指定された仮想パスを実行し、QueryString およびフォーム コレクションをクリアするかどうかを指定します。 |
GetLastError | 前の例外を返します。 |
GetType | 既存のインスタンスのタイプを取得します。 |
HTMLエンコード | 通常の文字列を正当な HTML 文字列に変換します。 |
HTMLデコード | HTML 文字列を通常の文字列に変換します。 |
ToString | 現在のオブジェクトを表す文字列を返します。 |
転送(文字列) | 現在のリクエストの場合、現在のページの実行を終了し、ページの URL パスを指定して新しいページの実行を開始します。 |
URLデコード | URL 文字列を通常の文字列に変換します。 |
URLエンコードトークン | UrlEncode と同じですが、Base64 でエンコードされたデータがバイト配列に含まれます。 |
URLデコードトークン | UrlDecode と同じように機能しますが、Base64 でエンコードされたデータがバイト配列に含まれます。 |
マップパス | 指定された仮想サーバー上のファイル パスに対応する物理パスを返します。 |
移行 | 現在のアプリケーションの実行を別の Web ページに転送します。 |
リクエスト オブジェクトは、System.Web.HttpRequest クラスのインスタンスです。これは、ページをブラウザにロードできるようにする HTTP リクエストの値と属性を表します。
このオブジェクトによって提示される情報は、より高いレベルの抽象化 (Web コントロール モデル) にカプセル化されます。ただし、このオブジェクトは、クライアント ブラウザや Cookie などの一部の情報を検査するのに役立ちます。
次の表に、リクエスト オブジェクトの注目すべきプロパティをいくつか示します。
財産 | 説明する |
---|---|
AcceptTypes | ユーザーがサポートする MIME 受け入れタイプの文字列配列を取得します。 |
アプリケーションパス | サーバー上の ASP.NET アプリケーションの実際のアプリケーション ルート パスを取得します。 |
ブラウザ | 要求元のユーザーのブラウザの機能に関する情報を取得または設定します。 |
コンテンツエンコーディング | 文字セットエンティティを取得または設定します。 |
コンテンツの長さ | クライアントによって送信されるコンテンツの長さをバイト単位で指定します。 |
コンテンツタイプ | 受信リクエストの MIME コンテンツ タイプを取得または設定します。 |
クッキー | クライアントから送信された Cookie のセットを取得します。 |
ファイルパス | 現在のリクエストの実際のパスを取得します。 |
ファイル | クライアントがアップロードしたファイルのコレクションをマルチパート MIME 形式で取得します。 |
形状 | フォーム変数のコレクションを取得します。 |
ヘッダー | HTTP ヘッダーのコレクションを取得します。 |
Httpメソッド | ユーザーが使用した HTTP データ転送メソッド (GET、POST、HEAD など) を取得します。 |
入力ストリーム | 受信 HTTP のエンティティ コンテンツを取得します。 |
安全な接続 | HTTP 接続がセキュリティで保護されたソケット (つまり、HTTPS) を使用するかどうかを示す値を取得します。 |
クエリ文字列 | HTTP クエリ文字列変数のコレクションを取得します。 |
生のURL | 現在のリクエストの元の URL を取得します。 |
リクエストタイプ | ユーザーが使用する HTTP データ転送メソッド (GET または POST) を取得または設定します。 |
サーバー変数 | Web サーバー変数のコレクションを取得します。 |
合計バイト数 | 既存の入力ストリームのバイト数を取得します。 |
URL | リクエストされた既存の URL に関する情報を取得します。 |
URLリファラー | 既存の URL にリンクされているクライアントの以前のリクエストに関する URL 情報を取得します。 |
ユーザーエージェント | クライアント ブラウザの元のユーザー エージェント文字列を取得します。 |
ユーザーホストアドレス | リモートクライアントのIPホストアドレスを取得します。 |
ユーザーホスト名 | リモートクライアントのDNS名を取得します。 |
ユーザー言語 | クライアント言語設定のソートされた文字列配列を取得します。 |
次の表に、いくつかの重要なメソッドを示します。
方法 | 説明する |
---|---|
バイナリ読み取り | 現在の入力ストリームから指定されたバイト数のバイナリ読み取りを実行します。 |
等しい(オブジェクト) | 指定されたオブジェクトが既存のオブジェクトと同等かどうかを判断します。 (オブジェクトから継承) |
GetType | 既存のインスタンスのタイプを取得します。 |
地図画像座標 | 受信したイメージ フィールド フォーム パラメータを適切な x 座標値と y 座標値に描画します。 |
マップパス(文字列) | 指定された実パスを物理パスに描画します。 |
名前を付けて保存 | HTTP リクエストとしてディスクに保存されます。 |
ToString | 既存のオブジェクトを表す文字列を返します。 |
入力の検証 | Cookie、Form、および QueryString プロパティのコレクションにアクセスすることで検証を実行します。 |
応答オブジェクトは、ユーザーの要求に対するサーバーの応答を表します。これは System.Web.HttpResponse クラスのインスタンスです。
ASP.NET では、サーバー側コントロールにはそれ自体を表示するためのオブジェクト指向メソッドが入れ子になっているため、応答オブジェクトはユーザーに HTML テキストを送信する際に重要な役割を果たしません。
ただし、HttpResponse オブジェクトは、Cookie の特性や Redirect() メソッドなど、いくつかの重要な機能を提供します。 Response.Redirect() メソッドを使用すると、アプリケーション内またはアプリケーション外の別のページにユーザーを転送できます。往復のプロセスが必要です。
次の表に、応答オブジェクトの注目すべきプロパティをいくつか示します。
財産 | 説明する |
---|---|
バッファ | 完全レスポンダーの終了後に出力をバッファリングして送信するかどうかを示す値を取得または設定します。 |
バッファ出力 | ページ全体が終了した後に出力をバッファリングして送信するかどうかを示す値を取得または設定します。 |
文字セット | 出力ストリームの HTTP 文字セットを取得または設定します。 |
コンテンツエンコーディング | 出力ストリームの HTTP 文字セットを取得または設定します。 |
コンテンツタイプ | 出力ストリームの HTTP MIME タイプを取得または設定します。 |
クッキー | 対応する Cookie コレクションを取得します。 |
有効期限が切れます | ブラウザー上のキャッシュされたページの有効期限が切れるまでの分数を取得または設定します。 |
期限切れ絶対 | キャッシュされた情報がキャッシュから削除される絶対日時を取得または設定します。 |
ヘッダーエンコーディング | 既存のヘッダー出力ストリームのエンコーディングを表すエンコーディング オブジェクトを取得または設定します。 |
ヘッダー | 応答ヘッダーのコレクションを取得します。 |
クライアントが接続されています | ユーザーがまだサーバーに接続しているかどうかを示す値を取得します。 |
出力 | 出力テキストが HTTP 応答ストリームに出力されます。 |
出力ストリーム | 出力の HTTP コンテンツ本文へのバイナリ出力を有効にします。 |
リダイレクト場所 | Http ヘッダー位置の値を取得または設定します。 |
状態 | ステータス バーを設定し、クライアントに返します。 |
ステータスコード | クライアントに返される HTTP 出力ステータス コードを取得または設定します。 |
ステータス説明 | クライアントに返される HTTP 出力ステータス文字列を取得または設定します。 |
サブステータスコード | 応答ステータス コードを制限する値を取得または設定します。 |
コンテンツの抑制 | HTTP コンテンツをクライアントに送信するかどうかを示す値を取得または設定します。 |
次の表に、いくつかの重要なメソッドを示します。
方法 | 説明する |
---|---|
ヘッダーの追加 | 出力ストリームに HTTP ヘッダーを追加します。 AddHeader は、以前のバージョンの ASP との互換性のために提供されています。 |
クッキーの追加 | インフラストラクチャは、HTTP Cookie を内部 Cookie コレクションに追加します。 |
ヘッダーの追加 | 出力ストリームに HTTP ヘッダーを追加します。 |
ログに追加 | カスタム ログ情報をインターネット インフォメーション サービス (IIS) ログ ファイルに追加します。 |
バイナリ書き込み | バイナリ文字の文字列を HTTP 出力ストリームに書き込みます。 |
クリアコンテンツ | バッファリングされたストリームからすべての出力をクリアします。 |
近い | クライアントソケットを閉じます。 |
終わり | 既存のバッファリングされた出力をすべてクライアントに送信し、ページの実行を停止し、EndRequest イベントを発生させます。 |
等しい(オブジェクト) | 指定されたオブジェクトが既存のオブジェクトと同等かどうかを判断します。 |
フラッシュ | 既存のバッファリングされた出力をすべてクライアントに送信します。 |
GetType | 既存のインスタンスのタイプを取得します。 |
写真 | HTTP PICS-Label ヘッダーを出力ストリームに追加します。 |
リダイレクト(文字列) | リクエストを新しい URL にリダイレクトし、新しい URL を指定します。 |
リダイレクト(文字列、ブール値) | クライアントを新しい URL にリダイレクトします。新しい URL と、既存のページを終了するかどうかを指定します。 |
SetCookie | Cookie コレクション内の既存の Cookie を更新します。 |
ToString | 既存のオブジェクトを表す文字列を返します。 |
送信ファイル(文字列) | メモリにバッファリングせずに、指定されたファイルを HTTP 応答出力ストリームに直接書き込みます。 |
書き込み(文字) | HTTP 応答出力ストリームに文字を書き込みます。 |
書き込み(オブジェクト) | オブジェクトを HTTP 応答ストリームに書き込みます。 |
書き込み(文字列) | HTTP 応答出力ストリームに文字列を書き込みます。 |
WriteFile(文字列) | 指定されたファイルの内容をファイル ブロックとして HTTP 応答出力ストリームに直接書き込みます。 |
WriteFile(文字列、ブール値) | 指定されたファイルの内容をメモリ ブロックとして HTTP 応答出力ストリームに直接書き込みます。 |
次の簡単な例には、ユーザーが名前を入力できるテキスト ボックス コントロール、サーバーに情報を送信するボタン、およびクライアント コンピューターの URL を表示するラベル コントロールが含まれています。
コンテンツファイル:
<%@ 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_クリック後のコードをクリック:
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()) }}
ページを実行すると、次の結果が表示されます。