現在、J2EEを使用したWebアプリケーションを運用しています。
そのシステムで、ブラウザのキャッシュが残っているために不具合が起きて困っています。
ブラウザのキャッシュを破棄すれば解決することが分かっていますが、お客様に毎回キャッシュを破棄させるわけにもいきません。
なので、サーブレットかJSP(なるべくサーブレット)で自動的にブラウザのキャッシュを破棄したいのです。
ブラウザ:IE6
Java:JDK1.4
どなたか、ご存知ありませんか??
ご存知の方、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
意味を履き違えていました。
すいません。> これはキャッシュを残らないようにするものではありませんか?
その通りなのですが、"cache"が無くても"history"があれば「戻る」ボタン使えますよ?
(当方、IE6/FireFox2)
以下、蛇足。
▼キャッシュの削除について
サーバサイドで動くプログラムからクライアントサイドのデータは操作できず、
キャッシュ時に有効/無効設定。
有効時はさらにいつまで有効とするのかの設定ができるだけで、
既にキャッシュされてしまったデータはどうしようもありません。
(つまり、サーバサイドプログラムの時点でアウト)
▼キャッシュとリクエストについて
キャッシュを残さない設定にした場合、
残らないのは出力するコンテンツ(サーブレット/JSPによって出力されるHTMLデータ)のみで
そこから呼ばれる画像なんかは、アドレスの動的生成やレスポンスヘッダの設定を
弄っていない限りはキャッシュされています。
(通信が発生するのは、サーブレット/JSP/HTML等のページ部分のみ)
ですので「戻る」などでキャッシュを使われた場合は、ページに対してリクエストが飛んできません。
サーバサイドで、「キャッシュが残っていたら~をする」といった処理そのものがありえないと思います。
(リクエストが飛んでくるのはキャッシュが無くなったか有効期限が切れたと考えられるから)
デバッガでブレイクポイントを設定するか、イーサリアル等で調査すれば分かります。
▼ナビゲートボタンについて
「戻る」「進む」などはブラウザが自身の"history"を見ているに過ぎず、
"cache"有無に関係なく"history"があるなら実行可能です。
キャッシュコンテンツがあればそれを使い、無ければリクエストを出します。
このあたりは実際試してみて問題があるかどうか調べてください。
(普通は"cookie"を無効にでもされない限り、ログイン等で行ったセッション維持は可能)
▼対策
どーしても破棄したいのであれば、Windows限定ですが
キャッシュを削除するクライアントアプリを作り、ユーザPCにインストールし、
ログインページでActiveXを用いてサーブレットからアプリを起動するといったぐらいでしょうか…。
お力になれず申し訳ないです。
失礼します。
どうもありがとうございました。
何パターンかやってみましたが、「戻る」は使えませんでした。
確かに、無理そうですね……
サーバー側からローカルのファイルをどうこうしようというのは、セキュリティの面からいっても難しそうですし。
大変参考になりました。ありがとうございました。
No.1
- 回答日時:
サーブレット/JSP(共通)で次のメソッドを実行してあげればokなハズです。
HttpServletResponse#setDateHeader("Expires", -1);
HttpServletResponse#setHeader("progma", "no-cache");
HttpServletResponse#setHeader("Cache-Control", "no-cache");
さらに保険をかけて出力するHTMLに以下のタグを含めても良いかもしれません。
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="Sat, 01 Jan 2000 00:00:00 GMT">
HTMLのの"Expires"は適当に古い時間を指定してください。
この回答への補足
ご回答ありがとうございます。
こちらの勉強不足かもしれませんが、これはキャッシュを残らないようにするものではありませんか?
戻るボタンは使えるようにしたいのです。
例えば、システムにログインを行った時にブラウザのキャッシュを破棄し、それ以降はキャッシュを使用して戻るボタンも使えるという感じです。
説明不足だったかもしれません。すいません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS Chrome のキャッシュについて 3 2022/05/26 07:50
- その他(ブラウザ) angel ブラウザってなぜアプリのクラッシュやフリーズが多いのでしょうか?? 特定のサイトにこのブ 3 2023/02/06 20:17
- その他(ブラウザ) 誰か助けてください。 地球ブラウザアプリのキャッシュ削除しても強制終了してもクラッシュが直りませんで 1 2023/02/08 19:39
- HTML・CSS 分数が正常に表示されない。 6 2022/05/09 18:53
- YouTube 自宅以外のPCで時々YouTubeを見るんですが、 2 2022/12/07 13:46
- その他(セキュリティ) 一度、閲覧しただけで、数ヶ月も同じ広告が表示されるのは違法じゃないの? 2 2022/09/27 10:07
- X(旧Twitter) Twitterでtweet・いいねができなくなりました。 2 2023/07/02 20:06
- ノートパソコン Windows 10 動作改善方法 6 2023/04/26 22:30
- その他(動画サービス) GoogleのブラウザでAbema開くと画面に白い四角いのがチラチラ出てきて、下にスクロールしても出 1 2022/04/22 20:53
- 電子マネー・電子決済 楽天キャッシュのオートチャージについて教えてください 1 2023/05/20 10:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
キャッシュは手動で更新しない...
-
ホームページビルダーで作られ...
-
ビットマップ(bmp)形式で背景...
-
バナーの直リンク禁止とは?
-
質問です。 K-POPアイドルの公...
-
HTML 表の上に文字がきてしま...
-
上司から10メガバイトの画像...
-
編集が出来ません(JPEGフ...
-
画質を劣化させずに加工・文字...
-
文字を太くしたり、色をつけた...
-
画像のペイントについて
-
tiffファイルをトリミングして...
-
アメブロの画像アップロードに...
-
WEBサイト 画像の直接リンクに...
-
FC2ブログで、画像の画面中...
-
デジカメで撮った集合写真に写...
-
YYMMDD
-
<td>中の文字列に<p>は必要?
-
pngをjpgに変換
-
アメーバブログでの画像設定の仕方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サーブレット/JSPでブラウザの...
-
404エラーについて
-
キャッシュさせたい
-
キャッシュが無効化されない
-
ホームページビルダーで作られ...
-
IEのみgoogleキャッシュでの表...
-
history.backで戻ったページを...
-
ホームページにあるカレンダー...
-
タグのリンク反映…IEと火狐
-
最初に一回だけリロード
-
Webのテンプレート
-
ビットマップ(bmp)形式で背景...
-
FC2ブログで、画像の画面中...
-
編集が出来ません(JPEGフ...
-
<td>中の文字列に<p>は必要?
-
質問です。 K-POPアイドルの公...
-
アイコンとバナーの違いについて
-
上司から10メガバイトの画像...
-
レンタルサーバーを借りて、物...
-
tiffファイルをトリミングして...
おすすめ情報