• 締切済み
  • すぐに回答を!

ログアウト後、リフレッシュしたい

お世話になります。 現在jspで、ログアウトした後トップページへ戻る処理を作成中です。 [logout.jsp] <!-- トップページへ戻る --> <tiles:insert page="top.jsp" /> <!-- セッションのクリア --> <% session.invalidate(); %> 困っているのは、logout.jspからtop.jspへ遷移したとき、一部、古い情報が表示されてしまうことです(ログアウト前の情報)。 全ページ共通で使用しているヘッダーに、「ログイン・ログアウト」リンクを持っており、ログイン中には「ログアウト」と表示し、ログアウト中には「ログイン」と表示させるようにしています。 この部分が、logout.jspからtop.jspへ遷移したとき、最新の状態で表示されません・・・ログアウトしてtop.jspへきた直後にはまだ「ログアウト」となっています。ページをリフレッシュすると、「ログイン」となり、最新の状態が正しく表示されます。 キャッシュをクリアする方法か、top.jspへきたときに1回だけページをリロードする方法か、他によい方法をご存知であれば、教えてください。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • Java
  • 回答数1
  • 閲覧数1285
  • ありがとう数0

みんなの回答

  • 回答No.1
  • world99
  • ベストアンサー率64% (20/31)

こんにちは。私は、Strutsでの開発経験がないので、struts-tilesタグライブラリについては、詳しくありません。参考になればと思い投稿させて頂きました。 ログイン認証後、セッションにログインフラグのような値を登録してログイン状態を保持していますでしょうか?もしそうならば、top.jspで、情報を表示している箇所に、セッションに、このログイン状態の値が登録判定するというのは、如何でしょうか? String tag = null; // HTMLタグ if (session.getAttribute("login_flg") != null) { tag = "<a href=\"logout.jsp\">ログアウト</a>"; } else { tag = "<a href=\"login.jsp\">ログイン</a>"; }

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • javascriptでのログアウトボタン

    お世話になっております。 現在サーブレットの学習をしており、DBへアクセスしログインした情報をセッションで 残しているのですが、ログアウトのボタンを設置した際、 jacascriptのみでセッションを切断しログイン画面へもどることは可能でしょうか。 function logOut() { ret = confirm("アドレス帳を終了しますか?"); if (ret == true) { session.invalidate(); location.href="/jsp/Login.jsp"; return true; } } とスクリプトを記述してもjspへ遷移しないのはなぜでしょうか。 どうか知恵をおかしください。

  • phpでのログアウトについて

    phpで会員制サイトの制作を勉強しています。 データベースへはPDOで接続しています。 MySQLデータベースを使用しています。 セッション変数($_SESSION["email"])の有無を使用したログイン方法を使用しています。 セッション変数の破棄(ログアウト処理)について質問があります。 前提として、現在会員制サイト制作の勉強で「ログアウト後は必ずTOPページに遷移する」という形にこだわっています。 ちなみに現在使っているログアウトの方法は 1、 全ページ共通の、ページ上部に表示されるメインメニューに <form method="post" name="logout" action="toppage.php"> <input type="hidden" name="logout" value="true"> <input type="submit" value="ログアウト"> </form> でログアウトボタンを作成し、 ログアウトボタンが押されたらtrueという値を持った$_POST["logout"]を トップページ(toppage.php)に送る。 2、トップページ(toppage.php)に画面遷移させ、 $logout = filter_input(INPUT_POST, 'logout'); if($logout=="true"){ unset( $_SESSION["email"] ); } でもしも$_POST["logout"]がtrueなら セッション変数$_SESSION["email"]を破棄する というプログラムによりログイン・ログアウトを管理しています。 きちんと動いてはいるのですが、不満が1つあります。 願わくばログアウトボタンをformタグのsubmitで作るのではなく、 <a href="toppage.php">ログアウト</a> とリンクを使用して作成したいです。 このようにリンクを使用する場合、遷移後のTOPページ(toppage.php)でセッション変数$_SESSION["email"]を破棄するには、どのようなプログラムを記述すれば良いのでしょうか? ネットで調べたりもしましたが、ほとんどのサイトで紹介していたものは、 ログアウトリンクをクリックすると、ログアウト処理確認専用の画面(「ログアウトしました!」とだけ書かれたような画面)に遷移し、セッション変数を破棄するものばかりでした・・・ 私個人としてはログアウト処理が完了した旨を報告する画面をワンクッション置くのは、あまり実用的ではない気がして好みません・・・ 巷にあふれているようなサイトではログアウトボタンをクリックすると TOPページに遷移するようなサイトばかりなので、 phpを使用した場合、どうやったらそのような仕組みになるのか考えた上で、 今のへんてこなログアウト処理プログラムに至りました。 ごちゃごちゃしていないもっと良いログアウト処理プログラムはないでしょうか? ご回答、よろしくお願いします。

    • ベストアンサー
    • PHP
  • ログインしたページで、ある処理を実行中に他のページへ飛ぼうとするとログアウトする

    タイトルの通り、ログインしないと表示できないページ間の遷移中に、他のページへのリンクをクリックするとログアウトされていしまいます。原因がわからず困っています。 要件的には、あるページへの遷移中に、他のページへのリンクをクリックすると、最初のページへの遷移を中止して、後からクリックしたページへ遷移する、もしくは、後からのクリックを無視して、最初のページへ遷移する、のどちらかです。 ソースは以下のような感じです。PHP5.2.4です。 session_start(); session_regenerate_id(TRUE); if (isset($_SESSION["isloggedin"]) && $_SESSION["isloggedin"]) { // ログインしていないと見られないページを表示 } else { header ("Location: login.php");// ログイン画面へ ※どうやらこっちの分岐に入るようです。 } ちなみに遷移終了後にさらに他ページへ遷移する場合は問題が発生しません。

    • 締切済み
    • PHP
  • ログアウトを実行してもログアウトされていない。

    こんにちは、ログアウトについてお聞きしたのですが、 どなたかお力を貸してください。 ユーザーネームとパスワードでログインする会員サイトを作っています。 会員メンバーのみ閲覧できるページがあるというシステムです。 ログインをして会員ページを閲覧できるのですが、 「ログアウトボタン」を押してもログアウト処理がされず、 まだ会員しか閲覧できないページを見ることができる状態です。 見ることができます。 いままでは、 // セッションを壊す。 //setcookie ("USERNAME", ""); //setcookie ("PASSWORD", ""); と記述していましたが、うまくいきませんでした。 調べたところ // セッション変数を全て解除する $_SESSION = array(); // セッションを切断するにはセッションクッキーも削除する。 // Note: セッション情報だけでなくセッションを破壊する。 if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } // 最終的に、セッションを破壊する session_destroy(); という書き方があるとわかったのですが、 ユーザーネームとパスワードを初期化するという文法と 書き方が分からず、未だに、ログアウトできない状態です。 文法と書き方をどなたか教えて頂けないでしょうか。 また、セッションを保つ時間の記述の仕方も教えて頂けないでしょうか よろしくお願い致します。

    • 締切済み
    • PHP
  • セッション無効できない。Servlet/JSP

    失礼します。 JavaでServlet/JSPでWebアプリを作っているのですが、 ログアウト処理(セッションの無効化)で困っています。 sessionを操作するSessionOperatorクラスでログアウト処理を実装しています。 SessionOperator sp = new SessionOperator(request,response); sp.logout(); /* ログアウトメソッド */ public void(){ session.invalidate(); } このようにセッションを無効化にしようとしているのですが、その後アカウントページのURLを直接入力でアクセスするとログインしている状態になってしまいます。 ログアウト後、直接入力でアクセスするとエラー画面を表示させたいです。 セッションはちゃんと無効化するにはどうすれば良いですか? セッションの無効化をSessionOperatorクラスで実行すると無効化できないんでしょうか。 どなたか教えてください。

    • ベストアンサー
    • Java
  • gooのログイン・ログアウト

    winXPです。 gooのトップページに移動すると、すでに「ようこそ○○○○さん」となっていて、その右にはログアウトのボタンがでています。 そして、ログアウトできません。 ボタンをクリックしても、同じ状態のgooのトップページ画面が出てきます。 通常、「ようこそゲストさん」と表示されていて、右にはログインのボタンがある状態なはずだったと思うのですが。 メール等を利用するときだけログインするという利用方法をしたいのです。 どなたか、原因を教えてください。

  • ログアウトできません

    Yahoo!のページでログアウトして完全にログアウトしましたいう画面が出るのですが、その後yahoo!のトップページに行くとログイン状態になっています。履歴を消してもログアウトできません。 ちなみにlivedoorやmixiでも同じです。 Mac OSX、Internet Explorer for Mac 5.2を使っています。

    • ベストアンサー
    • Mac
  • 楽天市場のログアウト表示について

    楽天市場のログアウト表示について 楽天トップページから「楽天ツールバー」の説明(ダウンロード)ページに入ると、ログインしていないのに、画面右上に”ログアウト”の表示が出ています。もともとこういう画面のようですが、なぜこのページだけこうなっているのでしょう?ちなみに、”楽天ポイントクラブ”のトップページも同じです。

  • wikipedia

    数日前からwikipediaでログイン後にページを移動すると 勝手にログアウトしてしまいます。 ログインしてログイン完了のページが出て 何か一つでも次のリンクを踏むとログアウトしてます。 ログイン・セッションに問題が発生しました。 セッションハイジャックを防ぐために操作は取り消されました。 ブラウザの「戻る」を押して直前のページを再度読み込んだ後に、 もう一度操作を行ってください。 と表示されます。指示通りやっても再度ログアウトします。 ブラウザの情報やらをオールクリアすると 1度だけ正しくログインできるのですが、自分でログアウトすると また同じように最初の勝手にログアウトする状態に戻ります。 原因がわかりません・・・。

  • 楽天のログアウトについて

    楽天市場を利用しています。 いつの間にか、トップ画面で 右上のmy rakutenのところに 【ようこそ、xxさん】と表示されてしまうようになってしまいました。 ログアウトをしているのですが 何度ログアウトしても やはり【ようこそ、xxさん】という表示が出てしまいます。 なお、ログアウトした後にトップ画面に戻っても 【ようこそ・・・】の右上には【ログアウト】と表示されているので ログインしている状態にあるようです。。。。 過去の質問を参考に、インターネットオプションのコンテンツから オートコンプリート(フォーム&パスワード)をクリアしてみましたが やはり【ようこそ、xxさん】の表示は出てきてしまいました。。。 買い物時には再度パスワードを聞いてくるので とりあえず悪用される心配はないのですが、、、、気になっています。 (スーパーポイントの累積も表示されてしまっているので・・・・) どうすればこの【ようこそ、xxさん】の表示が 表示されなくなると思いますか?