- PR -

セッション変数について

1
投稿者投稿内容
ひろきち
会議室デビュー日: 2002/09/13
投稿数: 18
投稿日時: 2002-10-18 09:53
おはようございます。
ひろきちです。

皆さんセッション変数を色々とお使いと思いますが、
ご存知であれば教えて頂きたいのですが
よろしくお願いいたします。

下記の画面構成があった場合。
1.メニュー画面
2.顧客データ登録画面

1の画面より、JavaScriptを使って、
別ウィンドウで2の画面をいくつでも表示できるように作った場合について。
(別窓で開かれる画面を2−1、2−2とします。)

1の画面より、画面受け渡し情報をGETを使用して次画面へ渡し、
あけられた画面のPage_Load時にセッション変数に格納して
その後の処理でセッション変数を使用しています。

まず2の画面を表示させる(2−1とする)
もう一つ2の画面を表示させる(2−2とする)
両方の画面を表示させた状態で
もう一度2−1で業務処理を行おうとした場合に、
内部で参照しているセッション変数の情報が
2−2でセットしたものになってしまいます。

セッション変数と言うものは、各ウィンドウ毎に別々に保持していると
考えていたのですが、そういうものではないのでしょうか?
別の画面でも、同じ呼び出し元から作られた窓で
同じセッション変数名なら、やはり同じ物と言う扱いになるのでしょうか?

わかりにくい説明で申し訳ありませんが、よろしくお願いいたします。

冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2002-10-18 11:13
>セッション変数と言うものは、各ウィンドウ毎に別々に保持していると考えていたのですが、そういうものではないのでしょうか?
これだと例えば、「次のページに行くたびに新しく窓を開いた」としたら、変数の内容が全然別になってしまいますよね?
そういうのは、セッション変数とは言いません。

もう少し理解するように努力してください。
ぴで
大ベテラン
会議室デビュー日: 2002/10/10
投稿数: 123
お住まい・勤務地: 東京
投稿日時: 2002-10-18 11:16
同じウィンドウから window.open や submit によって開かれたウィンドウからの
HTTPリクエストには同じセッションCookieの値が使われているので、
名前が同じであれば、同じセッション変数が参照されます。

セッション内で同時に複数実行される可能性がある処理にセッション変数を使って
パラメータの受け渡しをしないほうがいいでしょう。

パラメータを引き継ぎたい場合には、VIEWSTATEを利用するとか、hiddenタグ等を使用して
各スレッド間で独立したパラメータを参照できるようにすればいいです。
ひろきち
会議室デビュー日: 2002/09/13
投稿数: 18
投稿日時: 2002-10-18 11:45
冬寂さん、ぴでさん、書き込みありがとうございます。

勉強不足で申し訳ありません。
別のサイトなどを参照して、色々調べていたのですが、
やはり、考え方から間違っていました。
質問する前にもう少し、調べていればよかったのですが、
申し訳ありません。

画面の構成が別ウィンドウで開けれて、更に各画面でフレーム処理が
行われているので、フレーム間で意識せずデータ参照したかった為、
セッション変数を使用していました。

ぴでさんのおっしゃっていたVIEWSTATEについても調べて、
いい感じとは思っていたのですが、ページ単位に記憶されてるため、
フレーム割りした画面では、うまく使えなさそうですね。

もう少し、方法を考えてみます。
こんな質問にも、お答えいただきまして
本当にありがとうございました。

これからもよろしくお願いいたします。

1

スキルアップ/キャリアアップ(JOB@IT)