Session_OnStart

(PWS4 IIS4 IIS5)
Session_OnStart — サーバーが新しいセッションを作成したときに発生します。

Sub Session_OnStart
. . .
End Sub

説明

このスクリプトは、要求されたページの実行前に処理されます。したがって、Session_OnStart イベントは、セッション全体の変数を設定するタイミングとして適しています。変数は、ページへのアクセスが始まる前に設定されるためです。 Session_OnStart イベント スクリプトでは、すべての組み込みオブジェクト (Application、 ObjectContext、 Request、Response、Server、および Session) が利用でき、参照できます。

Session_OnStart イベントに Redirect メソッドまたは End メソッドの呼び出しが含まれている場合も、Session オブジェクトは処理されますが、サーバーは Global.asa ファイルのスクリプト、および Session_OnStart イベントを発生させたファイルのスクリプトの処理を停止します。

Session_OnStart イベントで Redirect メソッドを呼び出し、ユーザーが常に特定の Web ページでセッションを始めるようにする処理などを行うことができます。ユーザーがアプリケーションに入ると、サーバーはそのユーザーに対してセッションを作成し、Session_OnStart イベントスクリプトを処理します。このイベントのスクリプトでは、ユーザーが開いたページが開始ページかどうかを調べ、開始ページではない場合に Response.Redirect メソッドを呼び出してユーザーを開始ページに移動させることができます。次の例は、以上の内容を示しています。

例1.Session_OnStartの例

1
2
3
4
5
6
7
8
9
10
11
<script RUNAT=Server LANGUAGE=VBScript>
Sub Session_OnStart

  startPage = "/MyApp/StartHere.asp"
  currentPage = Request.ServerVariables("SCRIPT_NAME")

  If strcomp(currentPage,startPage,1) then
    Response.Redirect(startPage)
  End If
End Sub
</script>

上の例は、cookie をサポートしているブラウザでのみ動作します。非 cookie ブラウザは SessionID cookie を返さないため、ユーザーがページを要求するたびにサーバーは新しいセッションを作成します。したがって、要求ごとにサーバーは Session_OnStart スクリプトを処理し、ユーザーを開始ページに移動させます。上記のスクリプトを使う場合、そのサイトの開始ページには、cookie が利用可能なブラウザの使用が必要なことをユーザーに知らせるメッセージを掲示することをお勧めします。


Session_OnEnd

(PWS4 IIS4 IIS5)
Session_OnEnd — セッションが破棄されたときに発生

Sub Session_OnEnd
. . .
End Sub

説明

Session_OnEnd イベントは、セッションが破棄されたとき、またはタイムアウトになったときに発生します。サーバー組み込みオブジェクトのうち、Application オブジェクト、Server オブジェクト、および Session オブジェクトだけが利用できます。


RemoveAll

(PWS4 IIS4 IIS5)
RemoveAll — Contents コレクションからすべての項目を削除します。

Session.Contents.RemoveAll( )

説明

RemoveAll メソッドは、Session オブジェクトの Contents コレクションに追加された項目すべてを削除します。

次の例は、Session.contents コレクションに追加された項目すべてを削除します。

例1.RemoveAllの例

1
<%Session.Contents.RemoveAll()%>

Remove

(PWS4 IIS4 IIS5)
Remove — Contents コレクションから項目を削除します。

Session.Contents.Remove( Item|Index )

パラメータ
Item コレクションから削除するメンバの名前です。
Index コレクションから削除するメンバのインデックス エントリです。

説明

Contents.Remove メソッドは、入力パラメータとして文字列または整数のいずれかの値をとります。入力パラメータが文字列の場合、メソッドは Contents コレクション内で名前が文字列と一致する項目を探し、削除します。入力パラメータが整数の場合、メソッドはコレクションの最初から数えて、対応する項目を削除します。

次の例は、myName という変数を Session.Contents コレクションに追加して、削除します。

例1.Removeの例

1
2
3
4
<%
  Session("myName") = " "
  Session.Contents.Remove("myName")
%>

Abandon

(PWS4 IIS4 IIS5)
Abandon — このメソッドは、Session オブジェクトを破棄してそのリソースを解放します。

Session.Abandon[= nMinutes]

パラメータ
nMinutes セッションがアイドル状態のまま保持される分数を指定します。この時間が経過するとサーバーは自動的にセッションを終了します。既定値は 10 分です。

説明

Abandon メソッドは、Session オブジェクトに格納されているすべてのオブジェクトを破棄し、リソースを解放します。Abandon メソッドを明示的に呼び出さない場合、サーバーは、セッションがタイムアウトになった時点でそれらのオブジェクトを破棄します。

Abandon メソッドを呼び出すと、現在の Session オブジェクトが削除のためにキューに退避されますが、実際に削除されるのは現在のページのスクリプトコマンドの処理がすべて完了した時点です。つまり、 Abandon を呼び出したページ内であれば Session オブジェクト内の変数にはまだアクセスすることができますが、その後の Web ページではアクセスできなくなります。

たとえば、次のスクリプトの 3 行目は値 Mary を出力します。これは、Session オブジェクトはサーバーがスクリプトの処理を完了するまで破棄されないためです。

例1.Abandonの例

1
2
3
4
5
<%
  Session.Abandon
  Session("MyName") = "Mary"
  Reponse.Write(Session("MyName"))
%>

しかし、後続の Web ページで変数 MyName にアクセスしても、変数は空になります。これは、上のスクリプトのあるページの処理が完了した時点で MyName と前の Session オブジェクトが破棄されたためです。

セッションを放棄した後に後続の Web ページを開くと、サーバーは新しい Session オブジェクトを作成します。この新しい Session オブジェクトには、変数やオブジェクトを格納することができます。

次の例は、サーバーが現在のページの処理を完了したときにセッション状態が解放されるようにします。

1
<% Session.Abandon %>

Timeout

(PWS4 IIS4 IIS5)
Timeout — このアプリケーションのセッション状態のタイムアウト時間 (分単位) です。

Session.Timeout[= nMinutes]

パラメータ
nMinutes セッションがアイドル状態のまま保持される分数を指定します。この時間が経過するとサーバーは自動的にセッションを終了します。既定値は 10 分です。

説明

Timeout プロパティは、このアプリケーションの Session オブジェクトのタイムアウト時間を分単位で指定します。ユーザーがこのタイムアウト時間の間、ページの更新や要求をまったく行わなければ、そのセッションは終了します。

Abandonメソッドも参照ください。


SessionID

(PWS4 IIS4 IIS5)
SessionID — このユーザーのセッション識別子を返します。

Session.SessionID

説明

SessionID プロパティは、セッション識別子を返します。セッション識別子は、セッションの作成時にサーバーによって生成される一意の識別子です。セッション ID は長整数 (LONG) データ型として返されます。

データベース アプリケーションの主キーの値を生成するために SessionID プロパティを使用することは避けてください。
これは、Web サーバーが再起動した場合に、SessionID の値の一部がサーバーの停止前の値と同じになることがあるためです。
このため、Microsoft SQL Server の IDENTITY や Microsoft Access の COUNTER などの自動インクリメント列データ型を代用してください。


LCID

(PWS4 IIS4 IIS5)
LCID — ロケール識別子です。

Session.LCID( = LCID )

パラメータ
LCID 有効なロケール識別子です。

説明

LCID はロケール識別子を指定します。ロケール識別子は、各国を数字で表す標準の省略形で、システム定義のロケールの 1 つを一意に識別します。LCID が @LCID ディレクティブを使用して設定されている場合、Session.LCID はディレクティブで設定された値を上書きします。

例1.LCIDの例

次の例は、ロケールを イギリス英語に設定し、VBScript FormatCurrency メソッドを使用して、値 125 を通貨として £ 記号を付けて表示します。

1
2
3
4
5
6
<%
  Session.LCID = 2057
  Dim curNumb
  curNumb = FormatCurrency(125)
  Response.Write (curNumb)
%>

CodePage

(PWS4 IIS4 IIS5)
CodePage — 記号のマッピングに使われるコード ページです。

Session.CodePage (= Codepage )

パラメータ
Codepage ASP スクリプト エンジンを実行しているシステムで有効なコード ページを表す符合なし整数です。

説明

CodePage プロパティは、動的コンテンツを表示するときに使用するコード ページを決定します。

コードページは、数字、区切り記号、およびその他の記号を含む文字セットです。言語およびロケールが異なると、異なるコードページが使用されることがあります。たとえば、アメリカ英語とほとんどのヨーロッパ言語では、ANSI コード ページ 1252 が使用されます。日本語漢字では OEM コードページ 932 が使用されます。

コード ページは、文字とシングルバイトの値またはマルチバイトの値とを対応付けた表によって表すことができます。ほとんどのコード ページでは、0x00 ~ 0x7F の範囲の文字に対して ASCII 文字セットを共有しています。


StaticObjects

(PWS4 IIS4 IIS5)
StaticObjects — Applicationオブジェクトを保持

Application.StaticObjects
( Key )

パラメータ
Key 変数名/インデックス(取得するプロパティです。)

説明

StaticObjects コレクションには、セッション オブジェクトのスコープ内で タグを使用して作成されたすべてのオブジェクトが含まれます。StaticObjects コレクションを使用すると、オブジェクトの特定のプロパティの値を調べたり、コレクションに対して繰り返し処理を行って、すべてのオブジェクトのプロパティを取得したりすることができます。

例1.StaticObjectsの例

1
2
3
4
5
6
7
8
9
10
11
12
<%
  Dim
 objProp  For Each objProp in Session.StaticObjects
    If IsObject(Session.StaticObjects(objProp)) Then
      Response.write(objProp & " : Session object cannot be displayed."&_
      "<br />")
    Else
    Response.write(objprop & " : " & Session.StaticObjects(objprop) &_
    "<br />")
    End if
  Next
%>

ループ制御構造を使用すると、StaticObjects コレクションのすべての要素を対象として繰り返し処理を行うことができます。