
お世話になります。
ログイン画面(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にセッション情報を持たすことに、???なんですが・・・。
以上、よろしくお願いします。
No.3ベストアンサー
- 回答日時:
1について
F5をおすと直前のリクエストが再送信されたことになるのでしょうがないですね。
ここは運用で回避ということになるのでしょうか...
他の人の意見もきいてみたいっす。
2について
URL直打ちで画面が表示されてしまうのは、
セッション情報をみていないからでしょう。
null判定というのはセッションがnullかどうかでは、
別のWindowが生きている状態で直打ちされるとセッションが生きたままになっているので、
セッションがnull+αの判定が必要です。
ふと思ったことについて
JSPでセッションやらなんやらを管理すると
JSPが画面以外の情報をもつことになり、
現在の風潮では好ましくないという感じです。
JSPは画面情報のみに注力するほうがよろしいです。
回答、ありがとうございます。
1.について:そうなんですか?
それを管理するのがセッションの役目だと思ってたんですが。。。
>セッションがnull+αの判定
+αとは具体的にどのような処理を追加すれば。。。
下ででているランダム値とかですかね?
JSPは基本的に画面情報しか持たせないんですか?
普通に画面情報以外も待たせてます、ねえ。。。(笑)
参考になりました。
No.2
- 回答日時:
1.について
他の方もおっしゃってる通り、Servletの標準では対応していませんので、独自に実装する必要があります。
よくある簡単な対処方法としては、FORMのHIDDEN項目に毎回変化するランダムな値を生成しておき、次にサーブレットが呼ばれた時にその値を判断し以前生成した値かをチェックします。そして次はまた異なる値をHIDDENに入れておくという手があります。
No.1
- 回答日時:
1.についてですがセッションはctrl+nやタブブラウザで別ウインドウで開くといった、セッションを保持したまま別ウィンドウを開く事には対処できません。
2.についてですが色々やり方はあると思いますが、単純にセッションの判定後NULLだったらLocationでindexに飛ばす等でいいのではないでしょうか?
回答、ありがとうございます。
>セッションを保持したまま別ウィンドウを開く事には対処できません。
つまりセッション管理では、別ウィンドウまでは無理ってことですか?でもセッションってそういうことも含めて管理されるのでは?
>セッションの判定後NULLだったら
単純にNULL判定だけでは、駄目ですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- PHP 掲示板のセキュリティについてアドバイスお願い致します 1 2023/08/11 20:44
- PHP 「ログイン機能を持たせる」説明が気難しいです。 2 2022/10/11 02:59
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- PHP ここで言うトークンの意味を教えてください。 3 2022/08/24 03:03
- Windows 10 ウィンドウズ10で起動画面が真っ暗、修復方法は? 6 2022/03/27 19:28
- その他(IT・Webサービス) 【Google マップ】新しいマイマップを作るには、どうすれば良いでしょうか? 8 2023/03/10 09:06
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- Windows 10 Windows10 の設定?について (長文ですがよろしくお願いします)m(_ _)m 3 2022/05/14 12:22
- その他(コンピューター・テクノロジー) テストケースの問題 2 2023/08/14 10:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLのSELECTタグの使い方、JSP...
-
グローバルIPアドレスの変更タ...
-
setAttribute getAttribute 配...
-
セッションタイムアウト時にエ...
-
JavaとJSPのセッションについて
-
JSPでsession変数が勝手に書き...
-
struts2でのフィルターを使った...
-
GoogleChrome閉じるたびにアン...
-
Tomcatでの同一セッション同時...
-
javascriptでセッションを取得
-
jspからServletを呼び、元のjsp...
-
フォーム上で押されたボタンに...
-
三菱GOTの画面切り替えについて
-
リクエストに応じたselectedの...
-
Java-jspの画面入力値保持について
-
C言語で今まで表示していた画面...
-
JSPでのリストボックス表示
-
ボタンが活性化の場合とは、ボ...
-
「<c:forEach タグが終了し...
-
JSPからJSPへ情報を渡せる?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グローバルIPアドレスの変更タ...
-
javascriptでセッションを取得
-
エラーページ遷移後に入力値を残す
-
JSPでsession変数が勝手に書き...
-
MySQL・Tomcat・JSP 何度もSub...
-
JSP + ラジオボタン
-
セッションタイムアウトの設定...
-
リンクをクリックするとセッシ...
-
ASP.NETのGlobal.asaxについて
-
ログイン後の画面をアドレスバ...
-
sessionスコープとapplication...
-
javascriptでのログアウトボタン
-
HTMLのSELECTタグの使い方、JSP...
-
セッションの情報の消去について
-
ASP Session変数名の取得
-
setAttribute getAttribute 配...
-
CGI::Sessionでのユーザとの紐...
-
画面遷移でセッション切れにな...
-
セッションタイムアウト時にエ...
-
セッションについて。
おすすめ情報