1. ホーム
  2. Web プログラミング
  3. JSP プログラミング

jsp session.setAttribute() と session.getAttribute() の使用例について説明します。

2022-01-16 10:27:14

セッションの簡単な紹介

  WEB開発では、サーバーはユーザーのブラウザごとにセッションオブジェクト(session object)を作成することができます。なお、1つのブラウザは排他的にセッションオブジェクトを持つ(デフォルト)。したがって、ユーザーデータを保存する必要がある場合、サーバープログラムはユーザーのブラウザ専用のセッションにユーザーデータを書き込み、ユーザーがブラウザを使って他のプログラムにアクセスする場合、他のプログラムはユーザーのセッションからユーザーのデータを取り出してユーザーにサービスを提供することができます。

セッションとクッキーの主な違い

  • クッキーは、ユーザーのデータをユーザーのブラウザに書き込むものです。
  • セッション技術は、ユーザーのデータをそのユーザー専用のセッションに書き込みます。
  • セッションオブジェクトはサーバーによって作成され、開発者はリクエストオブジェクトのgetSessionメソッドを呼び出してセッションオブジェクトを取得することができます。

基本的な構文

1、値型の変数の場合、Sessionは値型のコピーを保持します。

Session["__test0"] = 1;

int i = (int)Session["__test0"] + 1;

int j = (int)Session["__test0"];

結果

i=2,j=1

2、参照型の変数の場合、Sessionは参照で保存される

CDACommon cda = new CDACommon();

Session["__test"] = cda.GetDataSet("select top 1 * from tb_customer");

DataSet ds = (DataSet)Session["__test"];

DataSet ds2 = (DataSet)Session["__test"];

Rows[0][0]="9999";

結果

ds.Tables[0].Rows[0][0]=="9999"

Tables[0].Rows[0][0]=="9999". ds2;

3、セッションサイクル

新しいブラウザウィンドウが起動すると、新しいSessionが開始され、GlobalのSession_Startの呼び出しがトリガーされ、最初のブラウザウィンドウから開いたブラウザウィンドウでは、新しいSessionは開始されない。セッション

4、セッションを呼び出す

Web Service の場合、各メソッド呼び出しが Session を開始するので、同じ Session 内で複数の呼び出しを行うには、次のメソッドを使用します。 CWSSyscfg cwsCfg = new CWSSyscfg(); cwsCfg.CookieContainer = new System Net. CookieContainer(); CWSSyscfg は Web サービスクラスであり、Web サービスは CookieContainer プロパティをプロキシ クラスに設定します。複数のプロキシのCookieContainerプロパティが同じ値である限り、これらのWebサービスの呼び出しは同じSessionで行われます。これを実現するために、シングルトンパターンを使用することができます。 /シングルトンパターンを使って、これを実現することができます。

5, セッションデータの有効性

保存されているSessionデータは全体として無効です。

6、セッションの保存

DataViewのようなシリアライズ不可能なクラスをSessionで保存すると、SQLServerのセッション保存スキーマで動作しない。クラスがシリアライズされているかどうかを確認する方法は、そのクラスに[Serializable]が付いているかどうかを見ることです。

JSPでは

Jspのセッションは、豆の生存期間の使用は、一般的にページのために、セッションは、ユーザーが効果的な前にサイトを残していないことを意味し、あなたはユーザーが残したときに決定できない場合は、一般的にシステムの設定に基づいて、tomcatは30分に設定されます。

JSPでは、HttpSessionというオブジェクトを使って同じ機能を実現しています。httpsessionは、クッキーとURLリライトで構築された高品質なインターフェースで、セッション情報はサーバー側に、セッションIDはクライアント側のクッキーに格納されます。実際、多くのサーバでは、ブラウザがサポートしている場合はクッキーを使用し、サポートしていない場合や非推奨の場合は自動的に URL リライトに変換しています。セッションは自動的に各プロセスの情報を保存する便利な方法となります。

Httpsessionには以下のAPIがあります。

getId このメソッドは、セッションごとに生成される一意の識別子を返す。これは、セッションに関連する値がひとつしかない場合や、ログメッセージが以前のセッションに関連する場合に、キー名として使用されます。

GetCreationTime は、セッションが作成された時刻を返します。最小単位は千分の一秒です。印刷に便利な値を取得するには、この値を Date コンストラクタや GregorianCalendar の setTimeInMillis メソッドに渡します。

GetLastAccessedTimeは、セッションがクライアントから最後に送信された時刻を返します。最小単位は 1000 分の 1 秒です。

GetMaxInactiveInterval 合計時間を秒単位で返します。負の値は、セッションがタイムアウトしないことを意味します。

getAttribute セッションに関連する情報を取得します。(jsp1.0ではgetValue)

Integer item = (Integer) session.getAttribute("item") // retrieve the value of the session and convert it to an integer

setAttributeはキーワードと値を指定します。以前の値をすべて置き換えます。(jsp1.0ではputValue)

session.setAttribute("ItemValue", itemName); // ItemValue must not be must simple type

このアプリケーションで最も使用されるのは、getAttributeとsetAttributeです。それでは、セッションの応用例として、test1.jsp(セッションに書き込む情報)、test2.jsp(セッションから読み込む情報)を簡単に説明します。

test1.jsp

<HTML>

<HEAD>

<TITLE> Document </TITLE>

</HEAD>

<BODY BGCOLOR="#FFFFFF">

<%

session.setAttribute("str",new String("this is test"));

%>

</BODY>

</HTML>

test2.jsp

<HTML>

<HEAD>

<TITLE> New Document </TITLE>

</HEAD>

<BODY BGCOLOR="#FFFFFF">

<%

String ls_str=null;

ls_str=(String)session.getAttribute("str");

out.println("The value taken from session is: "+ls_str);

%>

</BODY>

</HTML>

今回はjspのsession.setAttribute()とsession.getAttribute()の使用例について紹介します、より関連するjsp session.setAttribute()とsession.getAttribute()の使用例の内容は検索してください BinaryDevelopの過去の記事を検索するか次の関連記事を続けて閲覧してください、今後ともBinaryDevelopをよろしくお願いいたします!(`・ω・´)