アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。


ログイン画面(html)→S1→TOP画面(JSP-Frame)→S2→各メニューへ(JSP)の流れのシステムがあります。S1/S2はサーブレット(クラス)です。基本的にログイン画面以外の画面については子画面となっておりウィンドウを新しく生成していきます。

ブラウザ固有の処理、ブラウザメニューからの選択やキー押下などによる各画面間のセッションを管理したいのですが、ここの質問履歴や参考サイトを見てもイマイチ把握できません。

IEのショートカット等ブラウザに依存する部分を使われると対処のしようが無い気もします。(100%対処できれば。。。)
システム的にファンクションキー等の操作を禁止(Javascript等)するくらいしか思いつきません。
例として
1.ブラウザのメニューからファイル-新規作成-ウィンドウで新規に画面が開いたとき、ページの有効期限切れの警告画面になるんですが、そこで更新(F5キー押下)で元の画面(本来は出てはいけない画面)になります。
2.URL直打ちやコピーでも普通に画面が表示されます。(これも本来出てはいけない画面)
上記2つの問題に関して、何か対処法はあるでしょうか?
2.に関しては単純にNULLの判定を入れるだけでOKなんでしょうか?


あと、ふと疑問に思ったんですが、現在開発しているシステムでは、セッション系を一つのBeans(クラス)にしてセッション管理を行っているんですが、Javaでは一度生成した場合、半永久(意図的に削除やTimeoutを除く)でデータを持つことができますよね?
JSPに直接セッションのコードを書き込む場合とBeansとしてもつ場合の違いってありませんか?
前に携わったシステム開発では、JSP側で管理をしてたもので、どうもBeansにセッション情報を持たすことに、???なんですが・・・。


以上、よろしくお願いします。

A 回答 (3件)

1.についてですがセッションはctrl+nやタブブラウザで別ウインドウで開くといった、セッションを保持したまま別ウィンドウを開く事には対処できません。



2.についてですが色々やり方はあると思いますが、単純にセッションの判定後NULLだったらLocationでindexに飛ばす等でいいのではないでしょうか?
    • good
    • 0
この回答へのお礼

回答、ありがとうございます。

>セッションを保持したまま別ウィンドウを開く事には対処できません。
つまりセッション管理では、別ウィンドウまでは無理ってことですか?でもセッションってそういうことも含めて管理されるのでは?

>セッションの判定後NULLだったら
単純にNULL判定だけでは、駄目ですね。

お礼日時:2003/12/08 15:16

1.について


 他の方もおっしゃってる通り、Servletの標準では対応していませんので、独自に実装する必要があります。
 よくある簡単な対処方法としては、FORMのHIDDEN項目に毎回変化するランダムな値を生成しておき、次にサーブレットが呼ばれた時にその値を判断し以前生成した値かをチェックします。そして次はまた異なる値をHIDDENに入れておくという手があります。
    • good
    • 0
この回答へのお礼

回答、ありがとうございます。

よくあるんですか、こういうのって。
参考にしてみます。

お礼日時:2003/12/08 15:26

1について


F5をおすと直前のリクエストが再送信されたことになるのでしょうがないですね。
ここは運用で回避ということになるのでしょうか...
他の人の意見もきいてみたいっす。

2について
URL直打ちで画面が表示されてしまうのは、
セッション情報をみていないからでしょう。
null判定というのはセッションがnullかどうかでは、
別のWindowが生きている状態で直打ちされるとセッションが生きたままになっているので、
セッションがnull+αの判定が必要です。

ふと思ったことについて
JSPでセッションやらなんやらを管理すると
JSPが画面以外の情報をもつことになり、
現在の風潮では好ましくないという感じです。

JSPは画面情報のみに注力するほうがよろしいです。
    • good
    • 0
この回答へのお礼

回答、ありがとうございます。

1.について:そうなんですか?
それを管理するのがセッションの役目だと思ってたんですが。。。

>セッションがnull+αの判定
+αとは具体的にどのような処理を追加すれば。。。
下ででているランダム値とかですかね?

JSPは基本的に画面情報しか持たせないんですか?
普通に画面情報以外も待たせてます、ねえ。。。(笑)
参考になりました。

お礼日時:2003/12/08 15:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!