セッションの StaticObjects コレクション
StaticObjects コレクションには、Session オブジェクト スコープ内の <OBJECT> タグで作成されたすべてのオブジェクトが含まれます。このコレクションを使用すると、オブジェクトの特定のプロパティの値を決定したり、コレクションを反復処理してすべてのオブジェクトのすべてのプロパティを取得したりできます。
文法
Session.StaticObjects(Key)
パラメータ
鍵
取得する属性。
注: ループ制御構造を使用して、StaticObjects コレクション内のキーワードを反復処理します。以下の例を参照してください。
<%
薄暗いオブジェクト
Session.StaticObjects の各 objprop について
Response.write(objproperty & " : " & Session.StaticObjects(objprop) & "<BR>")
次へ
%>
セッション内容集
Session.contents コレクションには、<OBJECT> タグを使用せずにこのセッション用に作成されたすべてのアイテムが含まれます。このコレクションは、指定されたセッション項目の値を決定したり、コレクションを反復処理してセッション内のすべての項目のリストを取得したりするために使用できます。
文法
Session.Contents(Key)
パラメーター
鍵
取得するプロパティの名前。
注 ループ制御構造を使用して、Contents コレクション内のキーワードをループすることができます。次の例は、このプロセスを示しています。
<%
ディムセッションアイテム
Session.Contents の各セッションについて
Response.write(sessitem & " : " & Session.Contents(sessitem) & "<BR>")
次へ
%>
コードページ
CodePage プロパティは、動的コンテンツの表示に使用されるコード ページを決定します。
文法
Session.CodePage(=コードページ)
パラメータ
コードページ
これは、ASP スクリプト エンジンが実行されているシステムの有効なコード ページを表す符号なし整数です。
注釈コード ページは、数字、句読点、その他の文字を含めることができる文字セットです。言語や地域ごとに異なるコード ページを使用できます。たとえば、ANSI コード ページ 1252 は米国英語に使用され、ほとんどのヨーロッパ言語では OEM コード ページ 932 が日本語の漢字に使用されます。
コード ページは、文字をシングルバイト値またはマルチバイト値にマップする文字テーブルです。多くのコード ページは、ASCII 文字セットの 0x00 ~ 0x7F の文字を共有します。
放棄する
Abandon メソッドは、Session オブジェクトに格納されているすべてのオブジェクトを削除し、これらのオブジェクトのソースを解放します。 Abandon メソッドを明示的に呼び出さない場合、サーバーはセッションがタイムアウトするとこれらのオブジェクトを削除します。
文法
Session.Abandon
アノテーション
Abandon メソッドが呼び出されると、現在の Session オブジェクトが順番に削除されますが、オブジェクトは、現在のページ内のすべてのスクリプト コマンドが処理されるまで実際には削除されません。これは、Abandon が呼び出されると、Session オブジェクトに格納されている変数には現在のページではアクセスできますが、後続の Web ページではアクセスできないことを意味します。
たとえば、次のスクリプトでは、3 行目に Mary の値が出力されます。これは、サーバーがスクリプトの処理を完了する前に Session オブジェクトが削除されないためです。
<%
セッション.放棄
Session("MyName") = "メアリー"
Response.Write(Session("MyName"))
%>
後続の Web ページで MyName 変数にアクセスすると、変数が空であることがわかります。これは、前の例を含むページの処理が終了したときに、MyName が前の Session オブジェクトとともに削除されたためです。
セッションが放棄され、後続の Web ページが開かれると、サーバーは新しい Session オブジェクトを作成します。変数とオブジェクトを新しい Session オブジェクトに保存できます。
例 次の例では、サーバーが現在のページの処理を完了したときにセッション状態を解放します。
<% セッション.放棄 %>
LCID
LCID 属性は、動的コンテンツの表示に使用される場所の識別子を決定します。
文法
Session.LCID(=LCID)
パラメータ
LCID
効果的なサイトの識別。
コメント
LCID は、特定のシステムによって定義されたサイトを一意に識別する国際標準の略語であるサイト識別子を指定します。
セッションID
SessionID プロパティは、ユーザーのセッション ID を返します。セッションを作成するとき、サーバーはセッションごとに個別の ID を生成します。セッション ID は、long データ型として返されます。
文法
Session.SessionID
注 SessionID プロパティを使用してデータベース アプリケーションの主キーを作成しないでください。これは、Web サーバーが再起動されると、SessionID 値の一部がサーバー終了前と同じになる可能性があるためです。代わりに、Microsoft® SQL Server の IDENTITY、Microsoft® Access の COUNTER などの自動インクリメント列データ型を使用できます。
セッション_開始時
Session_OnStart イベントは、サーバーが新しいセッションを作成するときに発生します。サーバーは、要求されたページを実行する前にスクリプトを処理します。セッション変数はページがアクセスされる前に設定されるため、Session_OnStart イベントはセッション変数を設定するのに最適なタイミングです。すべての組み込みオブジェクト (Application、ObjectContext、Request、Response、Server、および Session) は、Session_OnStart イベント スクリプトで使用および参照できます。
文法
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Session_OnStart .End Sub 'by aspxuexi.com
</SCRIPT>
パラメータ。
スクリプト言語
イベントのスクリプトに使用するスクリプト言語を指定します。 VBScript や JScript など、スクリプトをサポートする任意の言語を使用できます。同じスクリプト言語を使用する複数のイベントがある場合は、それらを一連の <SCRIPT> タグの下に整理できます。
例 Session_OnStart イベントに Redirect または End メソッド呼び出しが含まれている場合、Session オブジェクトは保持されますが、サーバーは Global.asa ファイルの処理を停止し、Session_OnStart イベントをトリガーしたファイル内のスクリプトをトリガーします。
たとえば、ユーザーが特定の Web ページを開いたときに必ずセッションを開始できるようにするには、Session_OnStart イベントで Redirect メソッドを呼び出すことができます。ユーザーがアプリケーションにアクセスすると、サーバーはユーザーのセッションを作成し、Session_OnStart イベント スクリプトを処理します。このイベントにスクリプトを含めて、ユーザーが開いたページが起動ページであるかどうかを確認し、そうでない場合は、Response.Redirect メソッドを呼び出してページを起動するようにユーザーに指示できます。そのデモンストレーションを次の例に示します。
<SCRIPT RUNAT=サーバー言語=VBScript>
SubSession_OnStart
' 新規ユーザーが正しい方法で開始するようにしてください
'ASP アプリケーションのページ (aspxuexi.com)
' startPage に指定された値を以下に置き換えます
' アプリケーションの仮想パスに置き換えます。
' スタートページ
= "/MyApp/StartHere.asp"
currentPage = Request.ServerVariables("SCRIPT_NAME")
' 大文字と小文字を区別しない比較を行い、
' が一致しない場合は、ユーザーをスタート ページに送ります。
if strcomp(currentPage,startPage,1) then Response.Redirect(startPage) end ifEnd Sub</SCRIPT>
上記の例は、Cookie をサポートするブラウザでのみ機能します。 Cookie をサポートしていないブラウザは SessionID Cookie を返すことができないため、サーバーはユーザーが Web ページを要求するたびに新しいセッションを作成します。このようにして、リクエストごとにサーバーは Session_OnStart スクリプトを処理し、ユーザーを起動ページにリダイレクトします。以下のスクリプトを使用している場合は、サイトには Cookie 対応のブラウザが必要であることをユーザーに通知する通知を開始ページに配置することをお勧めします。
注: Redirect メソッドの後の Session_OnStart イベント スクリプトは実行されないことに注意してください。したがって、Redirect メソッドはイベント スクリプトの最後に呼び出す必要があります。そのデモンストレーションを次の例に示します。
<SCRIPT LANGUAGE=VBScript RUNAT=サーバー>
SubSession_OnStart
「セッション初期化スクリプト
」by aspxuexi.com
Response.Redirect "http:/server/app/StartHere.asp"
エンドサブ
</スクリプト>
上の例では、Redirect メソッドは、セッション初期化スクリプトの実行中にクライアントに表示されるすべてのテキストを非表示にします。
セッションオンエンド
Session_OnEnd イベントは、セッションが放棄されるかタイムアウトになると発生します。サーバーの組み込みオブジェクトのうち、使用できるのは、Application、Server、および Session オブジェクトのみです。
文法
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> サブ Session_OnEnd </SCRIPT>
パラメータ
。
スクリプト言語
イベントのスクリプトに使用するスクリプト言語を指定します。 VBScript や JScript など、スクリプトをサポートする任意の言語を使用できます。同じスクリプト言語を使用する複数のイベントがある場合は、それらを一連の <SCRIPT> タグの下に整理できます。
注: MapPath メソッドは、Session_OnEnd スクリプトでは呼び出すことができません。
タイムアウト
Timeout プロパティは、アプリケーションの Session オブジェクトのタイムアウト期間を分単位で指定します。ユーザーがこのタイムアウト内にページを更新またはリクエストしない場合、セッションは終了します。
文法
Session.Timeout[=nMinutes]
パラメータ
n分
セッションがアイドル状態になってから、サーバーが自動的にセッションを終了するまでの時間を分単位で指定します。デフォルト値は 15 分です。