重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

お世話になります。
現在jspで、ログアウトした後トップページへ戻る処理を作成中です。

[logout.jsp]
<!-- トップページへ戻る -->
<tiles:insert page="top.jsp" />
<!-- セッションのクリア -->
<% session.invalidate(); %>


困っているのは、logout.jspからtop.jspへ遷移したとき、一部、古い情報が表示されてしまうことです(ログアウト前の情報)。
全ページ共通で使用しているヘッダーに、「ログイン・ログアウト」リンクを持っており、ログイン中には「ログアウト」と表示し、ログアウト中には「ログイン」と表示させるようにしています。
この部分が、logout.jspからtop.jspへ遷移したとき、最新の状態で表示されません・・・ログアウトしてtop.jspへきた直後にはまだ「ログアウト」となっています。ページをリフレッシュすると、「ログイン」となり、最新の状態が正しく表示されます。

キャッシュをクリアする方法か、top.jspへきたときに1回だけページをリロードする方法か、他によい方法をご存知であれば、教えてください。
よろしくお願いします。

A 回答 (1件)

こんにちは。

私は、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>";
}
    • good
    • 0

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