ASPチュートリアル

ASPホーム

WPチュートリアル

Webページの紹介 WebPages Razor Webページのレイアウト Webページフォルダ WebPages Global Webページフォーム Webページオブジェクト Webページファイル Webページデータベース Webページヘルパー WebPages WebGrid Webページチャート Webページの電子メール Webページのセキュリティ Webページの公開 Webページの例 Webページクラス

ASP.NET Razor

かみそりのイントロ かみそりの構文 Razor C#変数 Razor C#ループ Razor C#ロジック RazorVB変数 かみそりVBループ RazorVBロジック

ASPクラシック

ASPイントロ ASP構文 ASP変数 ASP手順 ASP条件文 ASPループ ASPフォーム ASPCookie ASPセッション ASPアプリケーション ASP #include ASP Global.asa ASP AJAX ASPメール ASPの例

ASPリファレンス

ASPVB関数 ASPVBキーワード ASP応答 ASPリクエスト ASPアプリケーション ASPセッション ASPサーバー ASPエラー ASPファイルシステム ASP TextStream ASPドライブ ASPファイル ASPフォルダー ASP辞書 ASP AdRotator ASP BrowserCap ASPコンテンツリンク ASPコンテンツローテーター ASPクイック参照

ADOチュートリアル

ADOイントロ ADOコネクト ADOレコードセット ADOディスプレイ ADOクエリ ADOソート ADO追加 ADOアップデート ADO削除 ADO Demo ADOスピードアップ

ADOオブジェクト

ADOコマンド ADO接続 ADOエラー ADOフィールド ADOパラメータ ADOプロパティ ADOレコード ADOレコードセット ADOストリーム ADOデータ型

ASPGlobal.asaファイル


Global.asaファイル

Global.asaファイルは、ASPアプリケーションのすべてのページからアクセスできるオブジェクト、変数、およびメソッドの宣言を含むことができるオプションのファイルです。

すべての有効なブラウザスクリプト(JavaScript、VBScript、JScript、PerlScriptなど)をGlobal.asa内で使用できます。

Global.asaファイルには、次のもののみを含めることができます。

  • アプリケーションイベント
  • セッションイベント
  • <オブジェクト>宣言
  • TypeLibrary宣言
  • #includeディレクティブ

注: Global.asaファイルはASPアプリケーションのルートディレクトリに保存する必要があり、各アプリケーションは1つのGlobal.asaファイルのみを持つことができます。


Global.asaのイベント

Global.asaでは、アプリケーション/セッションの開始時に何を実行し、アプリケーション/セッションの終了時に何を実行するかをアプリケーションおよびセッションオブジェクトに指示できます。このためのコードは、イベントハンドラーに配置されます。Global.asaファイルには、次の4種類のイベントを含めることができます。

Application_OnStart-最初のユーザーがASPアプリケーションの最初のページを呼び出したときに発生します。このイベントは、Webサーバーが再起動された後、またはGlobal.asaファイルが編集された後に発生します。「Session_OnStart」イベントは、このイベントの直後に発生します。

Session_OnStart-このイベントは、新しいユーザーがASPアプリケーションの最初のページを要求するたびに発生します。

Session_OnEnd-このイベントは、ユーザーがセッションを終了するたびに発生します。ユーザーセッションは、指定された時間(デフォルトでは20分)ユーザーからページが要求されなかった後に終了します。

Application_OnEnd-このイベントは、最後のユーザーがセッションを終了した後に発生します。通常、このイベントはWebサーバーが停止したときに発生します。この手順は、レコードの削除やテキストファイルへの情報の書き込みなど、アプリケーションの停止後に設定をクリーンアップするために使用されます。

Global.asaファイルは次のようになります。

<script language="vbscript" runat="server">

sub Application_OnStart
'some code
end sub

sub Application_OnEnd
'some code
end sub

sub Session_OnStart
'some code
end sub

sub Session_OnEnd
'some code
end sub

</script>

注: ASPスクリプト区切り文字(<%および%>)を使用してGlobal.asaファイルにスクリプトを挿入することはできないため、HTMLの<script>要素内にサブルーチンを配置します。



<オブジェクト>宣言

<object>タグを使用すると、Global.asaでセッションまたはアプリケーションスコープを持つオブジェクトを作成できます。

注: <object>タグは<script>タグの外側にある必要があります!

構文

<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}>
....
</object>

Parameter Description
scope Sets the scope of the object (either Session or Application)
id Specifies a unique id for the object
ProgID An id associated with a class id. The format for ProgID is [Vendor.]Component[.Version]

Either ProgID or ClassID must be specified.

ClassID Specifies a unique id for a COM class object.

Either ProgID or ClassID must be specified.

最初の例では、ProgIDパラメーターを使用して「MyAd」という名前のセッションスコープのオブジェクトを作成します。

<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator">
</object>

2番目の例では、ClassIDパラメーターを使用して「MyConnection」という名前のアプリケーションスコープのオブジェクトを作成します。

<object runat="server" scope="application" id="MyConnection"
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
</object>

Global.asaファイルで宣言されたオブジェクトは、アプリケーション内の任意のスクリプトで使用できます。

GLOBAL.ASA:

<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator">
</object>

You could reference the object "MyAd" from any page in the ASP application:

SOME .ASP FILE:

<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>

TypeLibrary宣言

TypeLibraryは、COMオブジェクトに対応するDLLファイルの内容のコンテナです。TypeLibraryへの呼び出しをGlobal.asaファイルに含めることで、COMオブジェクトの定数にアクセスでき、ASPコードでエラーをより適切に報告できます。Webアプリケーションが型ライブラリでデータ型を宣言したCOMオブジェクトに依存している場合は、Global.asaで型ライブラリを宣言できます。

構文

<!--METADATA TYPE="TypeLib"
file="filename" uuid="id" version="number" lcid="localeid"
-->

Parameter Description
file Specifies an absolute path to a type library.

Either the file parameter or the uuid parameter is required

uuid Specifies a unique identifier for the type library.

Either the file parameter or the uuid parameter is required

version Optional. Used for selecting version. If the requested version is not found, then the most recent version is used
lcid Optional. The locale identifier to be used for the type library

エラー値

サーバーは、次のエラーメッセージのいずれかを返す可能性があります。

Error Code Description
ASP 0222 Invalid type library specification
ASP 0223 Type library not found
ASP 0224 Type library cannot be loaded
ASP 0225 Type library cannot be wrapped

注: METADATAタグは、Global.asaファイルのどこにでも表示できます(<script>タグの内側と外側の両方)。ただし、METADATAタグをGlobal.asaファイルの先頭近くに表示することをお勧めします。


制限

Global.asaファイルに含めることができるものに関する制限:

  • Global.asaファイルに書き込まれたテキストを表示することはできません。このファイルは情報を表示できません
  • サーバーオブジェクトとアプリケーションオブジェクトは、Application_OnStartサブルーチンとApplication_OnEndサブルーチンでのみ使用できます。Session_OnEndサブルーチンでは、サーバー、アプリケーション、およびセッションオブジェクトを使用できます。Session_OnStartサブルーチンでは、任意の組み込みオブジェクトを使用できます

サブルーチンの使用方法

Global.asaは、変数を初期化するためによく使用されます。 

以下の例は、訪問者が最初にWebサイトにアクセスした正確な時刻を検出する方法を示しています。時刻は「started」という名前のSession変数に格納され、「started」変数の値には、アプリケーションの任意のASPページからアクセスできます。

<script language="vbscript" runat="server">
sub Session_OnStart
Session("started")=now()
end sub
</script>

Global.asaを使用して、ページアクセスを制御することもできます。

次の例は、すべての新しい訪問者を別のページ、この場合は「newpage.asp」というページにリダイレクトする方法を示しています。

<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script>

また、Global.asaファイルに関数を含めることができます。

以下の例では、Application_OnStartサブルーチンは、Webサーバーの起動時に発生します。次に、Application_OnStartサブルーチンは、「getcustomers」という名前の別のサブルーチンを呼び出します。「getcustomers」サブルーチンはデータベースを開き、「customers」テーブルからレコードセットを取得します。レコードセットは配列に割り当てられ、データベースにクエリを実行しなくても、任意のASPページからアクセスできます。

<script language="vbscript" runat="server">

sub Application_OnStart
getcustomers
end sub

sub getcustomers
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=conn.execute("select name from customers")
Application("customers")=rs.GetRows
rs.Close
conn.Close
end sub

</script>

Global.asaの例

この例では、現在の訪問者の数をカウントするGlobal.asaファイルを作成します。

  • Application_OnStartは、サーバーの起動時にアプリケーション変数「visitors」を0に設定します
  • Session_OnStartサブルーチンは、新しい訪問者が到着するたびに、変数「visitors」に1を追加します。
  • Session_OnEndサブルーチンは、このサブルーチンがトリガーされるたびに「訪問者」から1を減算します

Global.asaファイル:

<script language="vbscript" runat="server">

Sub Application_OnStart
Application("visitors")=0
End Sub

Sub Session_OnStart
Application.Lock
Application("visitors")=Application("visitors")+1
Application.UnLock
End Sub

Sub Session_OnEnd
Application.Lock
Application("visitors")=Application("visitors")-1
Application.UnLock
End Sub

</script>

ASPファイルに現在の訪問者の数を表示するには:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>There are <%response.write(Application("visitors"))%> online now!</p>
</body>
</html>