ASPとは
ASP(Active Server Pages)は、IISの配下で動作するプログラムでIISをインストールすると自動的に組み込まれます。IISは、Windows Vista, Windows XP Professional, Windows 2000 Professional に同梱されています。
ASPはマイクロソフトが開発したテクノロジーで、IISを実行するにはマイクロソフトのWindowsのOSが必要になります。(Chili!Soft ASP, InstantASPを使用すればUNIX, Linuxなどのプラットフォームでも動作します。
ASPファイル(*.asp)は、HTMLファイルと同様テキスト、HTML、XML、スクリプトなどを含むことができます。ASPスクリプトは、<%・・・%>の間に挿入します。ASPスクリプトとして、VBScriptとJavaScript(JScript)などを使用できます。ASPスクリプトは、Webサーバー上で実行されますのでエンドユーザーのプラットフォームに影響を受けません。
ブラウザがASPファイルを要求すると、IISはASPファイルを読み込んでASPエンジンに渡します。ASPエンジンは、ASPファイルに記述されているASPスクリプトを実行します。最後に、HTMLファイルを作成してIIS経由でブラウザに送信します。
|
|
図 IIS/ASPの役割
Access + WebのダウンロードにVBScriptのサンプルが収録されています。サンプルの目次を表示させたら、「VBScriptを使用したサンプル」をクリックしてください。Internet Explorerの左側のフレームには、ASPファイルのソースが表示されます。右側のフレームには、Webサーバーから送信されたHTMLが表示されます。図に対応させると、ブラウザから要求されたASPファイルの内容が左側のフレーム、ASPエンジンが作成したHTMLファイルを表示させたのが右側のフレームです。ASPエンジンが作成したHTMLソースを参照するには、マウスを右側のフレームに移動して右ボタンをクリックします。ショートカットメニューから「ソースの表示」をクリックするとHTMLソースが表示されます。
<html>
<body>
Hello ASP from VBScript!
</body>
</html>
HTMLソースの<body>・・・</body>タグの間に「Hello ASP from VBScript!」のテキストがあります。このテキストは、図のASPファイル行5のresponse.writeメソッドで作成したものです。
ASPファイルの先頭行(行1)には、ASPのデリミタ<%・・・%>の間にスクリプトの言語を指定します。VBScriptを使用するときは、@ language=vbscriptのように記述します。@ language=を省略すると、VBScriptが仮定されます。ASPのresponse.writeメソッドを記述するときも同様にデリミタ<%・・・%>内に挿入します。
|
|
図 ASPスクリプトにVBScriptを使用したサンプル
Access + WebのダウンロードにJavaScriptを使用したサンプルが収録されています。ASPスクリプトとしてJavaScriptを使用するときは、ASPファイルの先頭行(行1)に@ language=javascriptを指定します。図の左側のフレームの行3にResponse.Writeメソッドを記述していますが、JavaScriptは大文字/小文字を区別して認識しますのでresponse.writeのように小文字で記述するとエラーになります。
|
|
図 ASPスクリプトにJavaScriptを使用したサンプル
Tip
|
ASPスクリプトのデリミタ<%・・・%>を使用しないでスクリプトを記述するには: 通常サーバー側で実行されるスクリプトを記述するときは、ASPのデリミタ<%・・・%>の間に挿入します。この他にHTMLの<script>タグを使用して記述する方法もあります。サーバー側で実行されるスクリプトを記述するには、<script>タグにrunat=”server”を追加します。 <script language=”javascript” runat=”server”> response.write(“Server-Side JavaScript”) </script> <script language=”vbscript” runat=”server”> response.write(“Server-Side VBScript”) </script> |
Tip
|
VBScriptのバージョン番号を表示させるには: 以下のサンプルを実行させると「あなたは VBScript version 5.6 を使用しています.」のメッセージが表示されます。 <% Response.Write "あなたは <b>" Response.Write ScriptEngine Response.Write " version " & ScriptEngineMajorVersion _ & "." & ScriptEngineMinorVersion Response.Write “ </b>を使用しています.” %> |
Note
|
クライアント側とサーバー側のスクリプトを混在させたときの問題: ASPファイルには、クライアント側で実行されるスクリプトとサーバー側で実行されるスクリプトを混在させることができます。また、サーバー側で実行させるスクリプトは<%・・・%>の間に挿入する方法と、<script runat=”server”>・・・</script>タグ内に挿入する方法があります。ところが、これらのスクリプトをASPファイルに混在させるとスクリプトが記述された順番に実行されません。この不都合を回避するには、サーバー側で実行されるスクリプトを記述するとき<script runat=”server”>タグを使用しないで常に<%・・・%>を使用するようにします。
図 クライアント側/サーバー側で実行されるスクリプトを混在させたときの実行順序 |