Session オブジェクトはユーザー情報を保存するために使用されます。セッション オブジェクトに格納される変数は、単一ユーザーに関する情報を保持し、アプリケーション内のすべてのページで使用できます。
セッション オブジェクト
アプリケーションで作業するときは、アプリケーションを開いて変更を加えてから閉じます。それは会話によく似ています。コンピューターはあなたが誰であるかを知っています。アプリを開いたり閉じたりするタイミングを認識します。しかし、インターネットには問題があります。HTTP アドレスは状態を保持しないため、Web サーバーはユーザーが誰であるか、何をしているのかを知りません。
ASPは、ユーザーごとに一意のcookieを作成することでこの問題を解決します。 Cookie はクライアントに転送され、ユーザーを識別する情報が含まれます。このインターフェースはSessionオブジェクトと呼ばれます。
Session オブジェクトは、ユーザーに関する情報を保存したり、ユーザーのセッションの設定を変更したりするために使用されます。セッション オブジェクトに格納される変数は、単一ユーザーに関する情報を保持し、アプリケーション内のすべてのページで使用できます。セッション オブジェクトに保存される情報は通常、名前、ID、パラメータです。サーバーは、新しいユーザーごとに新しいセッションを作成し、セッションの有効期限が切れると、Session オブジェクトを取り消します。
セッションはいつ始まりますか?
セッションの開始:
*新しいユーザーがASPファイルをリクエストし、Global.asaファイルがSession_OnStartサブルーチンを参照するとき *値がSession変数に格納されるとき
*ユーザーがASP ファイルと Global.asa は、273238ce9338fbb04bee6997e5552b95 タグを使用してセッションのスコープを通じてオブジェクトをインスタンス化します。
ユーザーがリクエストまたは更新を指定しない場合、アプリケーション内のページでセッションが終了します。デフォルト値は 20 分です。タイムアウト間隔を長くまたは短く設定したい場合は、タイムアウトプロパティ
を設定できます。 次の例では、タイムアウト間隔を 5 分に設定しています:<% Session.Timeout=5 %>セッションをすぐに終了するには、Abandon メソッドを使用します:
<% Session.Abandon %>注: セッションを使用する場合の主な問題は、セッションをいつ終了するかです。ユーザーの最新のリクエストが最後のリクエストかどうかはわかりません。したがって、セッションをどれくらいの期間「存続」させるべきかわかりません。アイドル セッションを長時間待機すると、サーバー リソースが枯渇する可能性があります。ただし、セッションが途中で
削除された場合、サーバーがすべての情報を削除しているため、ユーザーは何度もやり直す必要があります。適切なタイムアウト間隔を見つけるのは難しい場合があります。 ヒント
: セッション変数を使用している場合は、セッション変数に大量のデータを保存しないでください。セッション変数の保存と取得
Session オブジェクトの最大の利点は、後続の Web ページの読み取りのために変数を保存できることであり、その適用範囲は非常に広いです。次の例では、username という名前のセッション変数に「Donald Duck」を割り当て、age という名前のセッション変数に「50」を割り当てます。
<% Session("username")="Donald Duck" Session("age")=50 %>値がセッション変数に保存されると、ASP で使用できるようになります。プログラム内のページ: Welcome 9191e841d6c4ef7e6a651b7bd17ba29e
プログラムの上記の行によって返される結果は、「Welcome Donald Duck」です。
セッション オブジェクトにユーザー パラメーターを保存し、これらのパラメーターにアクセスしてユーザーにどのページを返すかを決定することもできます。
<%If Session("screenres")="low" Then%> This is the text version of the page <%Else%> This is the multimedia version of the page <%End If%>
移除 session 变量
contents 集合包含所有的 session 变量。
可通过 remove 方法来移除 session 变量。
在下面的例子中,假如 session 变量 "age" 的值小于 18,则移除 session 变量 "sale":
<% If Session.Contents("age")<18 then Session.Contents.Remove("sale")End If %>
如需移除 session 中的所有变量,请使用 RemoveAll 方法:
<% Session.Contents.RemoveAll() %>
遍历 contents 集合
contents 集合包含所有的 session 变量。可通过遍历 contents 集合,来查看其中存储的变量:
<% Session("username")="Donald Duck" Session("age")=50 dim i For Each i in Session.Contents Response.Write(i & "<br />") Next %>
结果:
username age
如果需要了解 contents 集合中的项目数量,可使用 count 属性:
<% dim i dim j j=Session.Contents.CountResponse.Write("Session variables: " & j) For i=1 to j Response.Write(Session.Contents(i) & "<br />") Next %>
结果:
Session variables: 2 Donald Duck 50
遍历 StaticObjects 集合
可通过循环 StaticObjects 集合,来查看存储在 session 对象中所有对象的值:
<% dim i For Each i in Session.StaticObjects Response.Write(i & "<br />") Next %>
【相关推荐】
1. ASP免费视频教程
以上がASP でのセッションの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。