%@ LANGUAGE = VBScript %>
このモジュールでは、自分で ASP ページ (.asp ファイル) を作成して、ASP の基本的な機能のいくつかを学びます。ここでの作業で使うサンプル ファイルは、Active Server Pages のサンプル ディレクトリ (デフォルトでは <%= Request.ServerVariables("SERVER_NAME")%>\InetPub\ASPSamp\Tutorial) の Tutorial\Lessons ディレクトリにあります。作成したファイルも同様に Tutorial\Lessons ディレクトリに保存してください。
注意 このモジュールで作業結果を保存したり表示したりするためには、Web サーバー上、または Web サーバー上で書き込みおよび実行のアクセス権が設定されているリモート ディレクトリ共有上に、Active Server Pages がインストールされている必要があります。
ASP ページに慣れるために、まず実際に作成してみましょう。ASP ページを作成するには、テキスト エディタを使ってスクリプト コマンドを HTML ページに挿入します。作成したページをファイル名拡張子 .asp で保存すると、ASP によってスクリプト コマンドが処理されます。そして、Web ブラウザでそのページを開くだけでスクリプトの実行結果を見ることができます。この作業では "Hello World!" という言葉を表示するスクリプトを作成しますが、これには HTML と ASP のスクリプト コマンドをこのチュートリアルからテキスト エディタにコピーし、ファイルとして保存します。そしてそのファイルをブラウザで開けば、スクリプトの出力結果を見ることができます。
次の HTML コマンドは、"Hello World!" という言葉を大きいフォントで表示する、簡単なページを作成します。
<HTML>
<BODY>
<FONT SIZE=7>
Hello World!<BR>
</FONT>
</BODY>
</HTML>
このテキストを何回も繰り返し表示して、そのたびにフォントのサイズが大きくなるようにしたい場合には、フォント タグと HTML テキストを繰り返し指定して、そのたびに HTML テキストに異なるフォント サイズを指定します。このような HTML ページを作成してブラウザで開くと、その行が何回も表示されます。
または、ASP の機能を使い、より効率的な方法で同じコンテンツを生成することもできます。
<HTML><BODY>
Hello.asp
という名前で Lessons ディレクトリ (デフォルトでは <%= Request.ServerVariables("SERVER_NAME")%>\InetPub\ASPSamp\Tutorial\Lessons) に保存します。ワードパッドなどのワード プロセッサを使っている場合は、必ずテキスト形式でファイルを保存してください。ASP ページを正しく動作させるには、必ず .asp という拡張子を付ける必要があります。<BODY>
タグの後に新しい行を記述し、次のスクリプト コマンドをコピーして貼り付けます。<% For i = 3 To 7 %>
スクリプト コマンドは、区切り記号と呼ばれる <%
および %>
という文字列で囲みます。区切り記号の中のテキストはスクリプト コマンドとして処理され、閉じ記号の後のテキストはふつうの HTML テキストとしてブラウザに表示されます。このスクリプト コマンドは、"Hello World" という語句を表示する回数を決める VBScript のループです。ループの 1 回目では、カウンタ (i
) が 3 に設定されます。2 回目以降ループが繰り返され、2 回目ではカウンタは 4 に設定されます。そして、カウンタが 7 を超えるまでループが繰り返されます。
<FONT SIZE=<% = i %>>
ループが繰り返されるたびに、フォント サイズがカウンタ (i
) の現在値に設定されます。この結果、1 回目ではフォント サイズが 3 になり、2 回目では 4 になり、最後のループでは 7 になります。スクリプト コマンドは HTML タグの中で囲むこともできることに注意してください。
Hello World!<BR> <% Next %> </BODY> </HTML>
VBScript Next 式によって、カウンタが 7 を超えるまでループが繰り返されます。
<HTML> <BODY> <% For i = 3 To 7 %> <FONT SIZE=<% = i %>> Hello World!<BR> <% Next %> </BODY> </HTML>
テキスト エディタの中には、[ファイルの保存] ダイアログ ボックスで [テキスト形式] を選んだときにファイル名拡張子が自動的に .txt に変更されてしまうものがあります。このような場合は、拡張子を .txt から .asp に変えてから [保存] をクリックしてください。
おめでとうございます ! はじめて ASP ページを作ることができました。ここで学んだように、ASP ページの作成作業はとても簡単です。自分の使いやすいテキスト エディタを使って、HTML のコンテンツと (<%
および %>
の区切り記号で囲まれた) ASP のスクリプト コマンドを作成できます。ただし、ファイル名拡張子を必ず .asp にすることを忘れないようにしてください。ページが正しく表示されるかどうかを確かめるには、Web ブラウザでそのページを開きます (または前に開いたページを更新します)。
イントラネットおよびインターネットのサーバー アプリケーションの主な役割は、ブラウザから送信されたフォームの処理です。従来は、フォームから送信されたデータを処理するために専用のプログラムを作成する必要がありましたが、ASP では、VBScript や JScript などで記述したスクリプトを HTML ファイルに直接埋め込むことによってフォームを処理できるようになりました。ASP はスクリプトを読み取り、コマンドを実行して、その結果をブラウザに返します。
今回の作業では、ユーザーが HTML フォームを通じて送信したデータを処理する ASP ページを作成します。
.asp ファイルがどのように動作するのかを見るには、下のフォームに入力を行ってください。Tab キーを押すとフォーム内を移動できます。[送信] ボタンをクリックすると、入力したデータが Web サーバーに送られ、ASP によってそのデータが処理されます。
Lessons ディレクトリにあるファイル Form.htm で、ユーザーに情報を要求する次のフォームが既に作成されています。
<HTML>
<HEAD><TITLE>注文</TITLE></HEAD>
<BODY>
<H2>注文フォームのサンプル</H2>
<P>
次の各情報を入力し、終わったら [送信] をクリックしてください。
<FORM METHOD="POST" ACTION="response.asp">
<P>
姓名: <INPUT NAME="lname" SIZE="48">
<P>
名前: <INPUT NAME="fname" SIZE="48">
<P>
性別: <INPUT NAME="title" TYPE=RADIO VALUE="mr">男
<INPUT NAME="title" TYPE=RADIO VALUE="ms">女
<P><INPUT TYPE=SUBMIT><INPUT TYPE=RESET>
</FORM>
</BODY>
</HTML>
このフォームもほかのフォームと同じように、データを変数と値のペアとして Web サーバーに送信します。たとえば、ユーザーが [名前]
テキスト ボックスに入力した名前は、fname
という変数に割り当てられます。ASP では、フォームから送信された変数名と値にアクセスするために、組み込みオブジェクトを使うことができます。
<% Title = Request.Form("title")以前にほかのユーザーがチュートリアルのこの部分を既に修了している場合は、"チュートリアル レッスン" というコメントの下にこのスクリプト コマンドが既に挿入されていますので、コピーしたスクリプトを貼り付けて上書きしてください。
lname
fname
title
ASP は、HTML フォームから送信された情報を、Request オブジェクトの Forms コレクションに格納します (オブジェクトおよびフォームの詳細については、「スクリプト ガイド」および「オブジェクト リファレンス」を参照してください)。Request オブジェクトから情報を取得するには、「Request.collection-name ("property-name")
」と入力します。ここでは Request.Form ("title")
とすれば、ユーザーが入力した値に応じて mr
または ms
のどちらかの値を取得できます。
LastName = Request.Form("lname") If Title = "mr" Then %> <%= LastName %> 殿 <% ElseIf Title = "ms" Then %> <%= LastName %> さん
以前にほかのユーザーがチュートリアルのこの部分を既に修了している場合は、このスクリプト行が既に挿入されていますので、コピーしたスクリプトを貼り付けて上書きしてください。
VBScript の If...Then ステートメントは、Title
の値に応じて 2 つの異なる動作を実行します。Title
が mr
であればユーザーは "〜殿" と表示され、Title
が ms
であればユーザーは "〜さん" と表示されます。変数の値は <%= variable-name %>
という式を使って表示します。
<% Else %> <%=LastName & " " & Request.Form("fname") %> <% End If %>
以前にほかのユーザーがチュートリアルのこの部分を既に修了している場合は、このスクリプト行が既に挿入されていますので、コピーしたスクリプトを貼り付けて上書きしてください。
アンパサンド (&
) によって、変数の値が 1 つの文字列に連結されます。End If ステートメントは条件ステートメントの終わりを示します。
おめでとうございます ! はじめて作成した HTML フォームが正しく動きました。「モジュール 2: ActiveX サーバー コンポーネントの使用」では、ActiveX サーバー コンポーネントについて学びます。