- PR -

セッション情報が取得できない

1
投稿者投稿内容
オノマン
会議室デビュー日: 2004/11/30
投稿数: 6
投稿日時: 2004-12-03 00:20
現在、以下の環境でWebアプリの作成をしています。
 Appサーバ:tomcat5.0
 struts:1.2
 JDK:1.2.6

ログイン画面.jsp
 ・ユーザIDとパスワードを入力

ログインAction.java
 ・入力情報をキーにしてユーザ情報を取得
 ・取得したユーザ情報をセッションに設定
  KEY:"USER_INFO"
  VALUE:ユーザ情報
↓メニュー画面(フレーム.jsp) 
 ・セッションから"USER_INFO"をキーにしてユーザ情報を取得
 ・ユーザ情報に応じてメニューの項目を表示

メニュー画面はフレームで別れています。
左:メニュー.jsp
右:初期画面.jsp(メニューがクリックされると業務画面.jsp)

メニュー.jspでユーザ情報によりメニュー項目の表示を変更させたいのですが
メニュー.jspでは、セッションからユーザの情報が取得できません(nullで返却される)

子フレームからはではセッション情報が取得できないものなのでしょうか?

かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2004-12-03 01:04
フレームが分かれていようが分かれていまいが、
ローカルのクッキー若しくはURLのパラメータで
セッション管理してますんで、
フレーム云々は関係ないです。

確認したいんですが、
例えば、右フレームがhttp://localhost/xxxで、
左フレームがhttp://192.168.1.1/xxxみたいに、
マシン名が別になっていたりしてませんか?
その場合は取得できないはずです。
オノマン
会議室デビュー日: 2004/11/30
投稿数: 6
投稿日時: 2004-12-07 00:26
引用:


確認したいんですが、
例えば、右フレームがhttp://localhost/xxxで、
左フレームがhttp://192.168.1.1/xxxみたいに、
マシン名が別になっていたりしてませんか?
その場合は取得できないはずです。



返事遅くなって申し訳ありません。

ようやく原因が分かりました。
IEのインターネットオプションのプライバシータブで
プライバシーの設定を高以上に設定している場合に
フレームが分かれているとセッション情報が取得できませんでした。

プライバシーの設定により、なぜセッション情報が取得できないのかは
正直まだ分かっていません・・・
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2004-12-07 00:42
ブラウザのクッキーがブロックされている場合、
サーブレットはURLパラメータでセッション管理を行います。
URLをHTMLで出力するときに、Response.encodeURLメソッドを使用すれば、
セッション管理が可能になります。

#最近サーブレット触ってないのでうろ覚えですいませんが。。。
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2004-12-07 13:24
プライバシーが高になっている場合、フレーム云々に限らず
セッション管理はできなかったと思います。

セッションIDを取得して表示させればわかると思いますが
同一セッションだと思い込んでいる場合も、プライバシ設定
が高だと常に新しいセッションIDを生成してしまいます。

従って、ログイン後に情報が取れないのは、新たなセッションID
で情報を取得しようとしているからだと思います。

もう解決しているようですが
セッションIDを見てみては?
1

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