Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

JSPからサーブレット

はじめまして初心者です。宜しくお願い致します。
会員専用画面.jspでログアウトした場合にブラウザの戻るボタンで会員専用画面戻れなくする方法を教えてください。戻るボタンを押したときはエラー画面かトップページに遷移したいのですが。
また、直接、会員専用画面.jspのアドレスを入力時にエラー画面へ遷移させたいのですが。
サーバー側でsessionの削除って出来ますか?
質問がおかしいかもしれませんが何分初心者の為、
お手柔らかにお願い致します。

5

回答

81503

閲覧

5件の回答

評価

0

>サーバー側でsessionの削除って出来ますか?
普通にできるでしょう(筈)

で、それを利用してチェックすれば、
(sessionを管理するところを慎重に扱うことは言うまでもないでしょうけど)
希望を全て満足させることもできるんではないかと。


余談として

>ログアウトした場合にブラウザの戻るボタンで会員専用画面戻れなくする方法

ログイン中のページをキャッシュさせないとかいうのもあるでしょうけど、
それはブラウザも信頼しないといけなくなる筈で
そういったところを頼るのはあまりいい手段とは言えないかも。


まずはsessionの扱いについて十分に理解してみて、
次にログインからログアウトまでの流れとして考えてみて、
また、例外的処置について(例えば"直接アドレスを入力時にエラー画面へ遷移"もそのひとつ)、どんなのが考えられるか列挙してみて、また対処方法とかも考えていってみるとか(ちゃんと段階を踏んで)がいいかも。

流れを解り易い図(遷移図)に整理して行って考えをまとめると、うまく進められるでしょう。

評価

0

まあさんありがとうございました。
戻るボタンで会員画面に戻れるのが嫌なので、
会員画面は別のwindowで開くようにします。
クライアントのブラウザによってはscriptが
うまく動かないとかってあるのでしょうか?
後、ログアウトボタンを押してサーバー側で
セッションを削除してそのブラウザを閉じる
事は可能でしょうか?
右上の×ボタンでブラウザ閉じた場合
セットしたセッションはどうなりますか?
またまた質問ですいません。
宜しくお願い致します。

評価

0

>クライアントのブラウザによってはscriptが
>うまく動かないとかってあるのでしょうか?
スクリプトがどうなるかは、完全にクライアント依存です。
そもそも対応していなかったり、対応していても別の記述でないと動かなかったり、対応に問題はないけれど使用者がスクリプトを無効にしていたり。

>右上の×ボタンでブラウザ閉じた場合
>セットしたセッションはどうなりますか?
クライアントを(使用者が)閉じる際にセッションがどうなるかといえば、そのまま残ります。
そして、設定されたタイムアウト時間(tomcatのデフォルトで30分)を過ぎたときに、削除されます。
クライアント側でスクリプトを使って、ページを閉じる際にサーバへリクエストを送るような作り込みは、リクエストが確実に送信される保証はありませんし、
×ボタンでページから去るのか、リンク等でページから去るのかを知る方法もありません。

評価

0

>クライアントのブラウザによってはscriptが
>うまく動かないとかってあるのでしょうか?

どういうスクリプトかにもよるけど、ありますね。
スクリプトに頼るということになると、ユーザーがスクリプトの実行を許可してくれるかとかいうことも常に意識しないといけなくなるでしょう。

例えば
>別のwindowで開く
だと、開かれるかどうかくらいですけど、開いた後の場合では?とか
或いは、複数開かれるような場合はないか?とか

ここから先は、私なんかより、もっと色々経験積まれている方からの話を聞いた方がいいと思いますけど、

>ログアウトボタンを押してサーバー側で
>セッションを削除してそのブラウザを閉じる
>事は可能でしょうか?

可能でしょう。
閉じると共にサーブレットへもリクエストを出せば。

例えば、閉じる(closeメソッド)とか呼んでも、そのコードを処理しているメソッドを抜けるまではまだスクリプトは生きていた筈。
(実装の仕方にもよるかもだけど)
そこは検証してください。というところで。

>右上の×ボタンでブラウザ閉じた場合
>セットしたセッションはどうなりますか?

セッションタイムアウトが起こるまでは残っている筈です。
サーバーとの間で通信が起こらないとブラウザを閉じたなんてサーバー側で知ることはできないですから。

なので、ログインの度に一意なIDを発行して、閉じられたことの代わりに、改めてログインされたものとして処理するとか、
二重ログインとかは別管理してたりするのかな?

ログイン中に複数のウィンドウが開かれた場合とかも考慮する必要もあったりするのかも。

評価

0

ddd

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。