ホームページ > バックエンド開発 > C#.Net チュートリアル > ASP でのセッションの詳細な紹介

ASP でのセッションの詳細な紹介

Y2J
リリース: 2017-05-18 11:42:21
オリジナル
2123 人が閲覧しました

Session オブジェクトはユーザー情報を保存するために使用されます。セッション オブジェクトに格納される変数は、単一ユーザーに関する情報を保持し、アプリケーション内のすべてのページで使用できます。

セッション オブジェクト

アプリケーションで作業するときは、アプリケーションを開いて変更を加えてから閉じます。それは会話によく似ています。コンピューターはあなたが誰であるかを知っています。アプリを開いたり閉じたりするタイミングを認識します。しかし、インターネットには問題があります。HTTP アドレスは状態を保持しないため、Web サーバーはユーザーが誰であるか、何をしているのかを知りません。

ASPは、ユーザーごとに一意のcookieを作成することでこの問題を解決します。 Cookie はクライアントに転送され、ユーザーを識別する情報が含まれます。このインターフェースはSessionオブジェクトと呼ばれます。

Session オブジェクトは、ユーザーに関する情報を保存したり、ユーザーのセッションの設定を変更したりするために使用されます。セッション オブジェクトに格納される変数は、単一ユーザーに関する情報を保持し、アプリケーション内のすべてのページで使用できます。セッション オブジェクトに保存される情報は通常、名前、ID、パラメータです。サーバーは、新しいユーザーごとに新しいセッションを作成し、セッションの有効期限が切れると、Session オブジェクトを取り消します。

セッションはいつ始まりますか?

セッションの開始:

*新しいユーザーがASPファイルをリクエストし、Global.asaファイルがSession_OnStartサブルーチンを参照するとき *値がSession変数に格納されるとき

*ユーザーがASP ファイルと Global.asa は、 タグを使用してセッションのスコープを通じてオブジェクトをインスタンス化します。

ユーザーがリクエストまたは更新を指定しない場合、アプリケーション内のページでセッションが終了します。デフォルト値は 20 分です。

タイムアウト間隔を長くまたは短く設定したい場合は、タイムアウトプロパティ

を設定できます。

次の例では、タイムアウト間隔を 5 分に設定しています:

<%
Session.Timeout=5
%>
ログイン後にコピー
セッションをすぐに終了するには、Abandon メソッドを使用します:
<%
Session.Abandon
%>
ログイン後にコピー

: セッションを使用する場合の主な問題は、セッションをいつ終了するかです。ユーザーの最新のリクエストが最後のリクエストかどうかはわかりません。したがって、セッションをどれくらいの期間「存続」させるべきかわかりません。アイドル セッションを長時間待機すると、サーバー リソースが枯渇する可能性があります。ただし、セッションが途中で

削除された場合、サーバーがすべての情報を削除しているため、ユーザーは何度もやり直す必要があります。適切なタイムアウト間隔を見つけるのは難しい場合があります。 ヒント

: セッション変数を使用している場合は、セッション変数に大量のデータを保存しないでください。

セッション変数の保存と取得

Session オブジェクトの最大の利点は、後続の Web ページの読み取りのために変数を保存できることであり、その適用範囲は非常に広いです。

次の例では、username という名前のセッション変数に「Donald Duck」を割り当て、age という名前のセッション変数に「50」を割り当てます。

<%
Session("username")="Donald Duck"
Session("age")=50
%>
ログイン後にコピー

値がセッション変数に保存されると、ASP で使用できるようになります。プログラム内のページ:

Welcome <%Response.Write(Session("username"))%>

プログラムの上記の行によって返される結果は、「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免费视频教程

2. 教你解决ASP session丢失的方法

3. 介绍ASP中Session对象的三种方法

4. 详解ASP中Session的使用技巧

5. ASP session简单示例

以上がASP でのセッションの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート