キャッシュが無効化されない

このQ&Aのポイント
  • サーブレットを実行した後、JSPに前の処理結果が表示され続ける問題が発生しています。
  • メタタグのno-cache設定やブラウザのキャッシュクリアを試しましたが、問題は解決しませんでした。
  • IEのバージョンは5.0で、キャッシュを無効化する方法や問題の回避策を知っている方はご教示ください。
回答を見る
  • ベストアンサー

キャッシュが無効化されない

はじめまして。 以下の問題で大変困っております。 サーブレットからBeanを経由し、Beanでの処理結果をjspに表示している のですが、一度前の入力HTMLに戻り、再度サーブレットを実行させたとこ ろ、JSPには前の処理結果が表示されてしまいます。  ブラウザの「更新」ボタンを押すことにより、表示内容が更新されます。 キャッシュにJSPが残っているのではないかと思い、JSPの先頭で以下のよ うにキャッシュを無効化するよう設定したのですが、結果は同じです。   <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> また、以下の操作も試みましたが、やはり結果は同じです。 メニューバーの「ツール」から「インターネットオプション」選択。 →「全般」タブのインターネット一時ファイルの[ファイルの削除]ボタ ンでキャッシュのクリア。  設定ダイアログの「保存しているページの新しいバージョンの確認」も 「自動的に確認する」が選択されています。 IEのバージョンは5.0です。 キャッシュを無効化する方法をご存知の方、無理であれば上記のような問題 の回避策をご存知の方、ご教示下さい。 宜しくお願い致します。

  • Java
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.2

確認なのですが生成されたHTMLの中身は確認されました? かなり省略して書くと <html> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <title>サンプル</title> <body> 本文 </body> </html> という風になっているはずですが... さてJPSには縁のないのでASPとかならいざ知らず 「杜甫々」さんのサイトのことは重々承知です。はい

morikou
質問者

お礼

中身は確認しましたが、それだけでは解決できませんでした。 調査したところ、原因は全く違うところにあったようです。 ローカルではなくプロキシサーバのキャッシュを読みに行っていた ようです。 結局、このアプリケーションのみプロキシサーバーを使用しないよう に設定するという対応を取りました。これでキャッシュを読みに行かず、 常に新しい結果が表示されるようになりました。 御回答有難うございました。

その他の回答 (1)

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.1

キャッシュの制御は<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> だけとは限りませんので、参考URLの内容なども確認してみてはいかがでしょうか?

参考URL:
http://www.okweb.ne.jp/kotaeru.php3?q=28730
morikou
質問者

補足

教えていただいた、 <http://www.okweb.ne.jp/kotaeru.php3?q=28730>、 などを参考し、以下のタグでも試みましたが、ダメでした。 <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> <META HTTP-EQUIV="Expires" CONTENT="Mon, 1 Jan 1990 00:00:00 GMT"> <meta http-equiv="Last-Modified" content="Wed, 24 JUN 1999 16:26:18 GMT"> 因みにno-cacheはIEでは無効のようです。 <http://tohoho.wakusei.ne.jp/lng/199907/99070123.htm>

関連するQ&A

  • キャッシュを無効に

    ブラウザの「戻る」ボタンを無効にしようとして、ソースの最初に With Response .Addheader "Pragma", "no-cache" .AddHeader "Cache-control", "no-cache" .Expires=0 .CacheControl="Private" End With と入れているのですが、「戻る」が効いてしまいます。 原因として、プロキシのキャッシュを読んでいるのではないかと思うのですが、プロキシのキャッシュを読みに行かないようにする方法はありませんか? 事情により、プロキシを使わないという選択肢は×です。また、プロキシそのものをいじってキャッシュを無効にするという手も使えません。 なんとかASPでそういう仕組みは使えないでしょうか。

  • IE以外のブラウザでキャッシュを無効にする方法

    どうもこんにちは。今サーブレットで学習塾の生徒名簿管理のプログラムを模擬で作っているんですが、キャッシュの処理で困っています・・。 JSPのファイルには Calendar objCal1=Calendar.getInstance(); Calendar objCal2=Calendar.getInstance(); objCal2.set(1970,0,1,0,0,0); response.setDateHeader("Last-Modified",objCal1.getTime().getTime()); response.setDateHeader("Expires",objCal2.getTime().getTime()); response.setHeader("progma","no-cache"); response.addHeader("Cache-Control","no-store"); response.setHeader("Cache-Control","no-cache"); という記述をしています。HTMLのMETAタグにも <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="0"> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> という記述をしています。これでIE(Internet Explprer)ではきちんと有効になって、たとえばログイン認証を必要とするページからログアウトした後、ブラウザの戻るボタンで戻っても前のページは表示できないようになります。 ばんざ~~~いと思ってたら・・・、それ以外のブラウザ、たとえばFireFox(2.0)、Netscape(7.1)、Opera(9.0)などでは表示されてしまいます・・・。何かこれらのブラウザでも有効にできる対策はあるのでしょうか。いろいろ調べてみたけど見つかりません。どなたかご教授をお願いいたします!

    • ベストアンサー
    • Java
  • JSPで「処理中」をブラウザに表示

    サーブレット+DB、JSPでプログラムをしています。 以下の質問(CGIが対象です) http://www.okweb.ne.jp/kotaeru.php3?q=173368 と似たようなことを、JSPで行うにはどうしたらよいでしょうか。 サーブレットの処理中(長い処理)に、「処理中」のメッセージを表示して、終了したら完了ページに飛ばしたいのです。 「処理中」の表示はJSPでもJavaScriptでも、サーブレットから直接出力しても構いません。 さらに言えば、サーブレットではfor文で処理を回しているので、「○%完了」などが表示できたら最高です。 よろしくお願いします。

    • ベストアンサー
    • Java
  • javaサーブレットでjspへのフォワード処理と、ファイルに出力処理を行いたいのですが。。

    今javaサーブレットとjspでツール作成中です。 DBにアクセスして、その内容をCSVファイルに書き出すというツールなのですが、サーブレットではjspにフォワードという処理と、ファイルに出力という処理の二つを同時に行うことができるのでしょうか。 たくさんの本やサイトにそれぞれ片方の処理だけする場合は載っているのですが、両方を並行して処理させる場合のサーブレットの書き方がわかりません。。 jspからの情報をもとにサーブレットでDAOを生成、DBにアクセスし、検索結果をDTO(一行の情報はBean)に格納し、それをサーブレットからjspにフォワード&CSV出力というものを作りたいと思っています。 よろしくお願いします。

  • サーブレットから別フレームのパラメータを取り出すことは可能でしょうか?

    はじめまして。 JAVA&サーブレット初心者です。 現在、サーブレット、JSPを使ったWEBアプリケーションの開発をしてお ります。 左右二つに分かれたフレームを持つWEBアプリケーションを作っています。 大まかな流れとしては以下の通りです。  (1)左側のフレーム(仮にleft.jspとします)からサーブレット  (仮にservlet1とします)を呼び出す。  (2)右側フレームに(1)の処理結果のJSP(right1.jsp)を呼び出す  (3)right1.jspでサーブレット(servlet2)を呼び出す。  (4)右側フレームに(3)の処理結果のJSP(right2.jsp)を呼び出す。  (5)right2.jspでサーブレット(servlet3)を呼び出す。  (6)右側フレームに(5)の処理結果のJSP(right3.jsp)を呼び出す。   上記のように左側フレームが固定で右側フレームのJSPがサーブ  レット処理によって切り替わるようなWEBアプリケーションを開発し  ています。    問題なのは、今回開発しているシステムの要件により、(5)で呼び出され るサーブレット(servlet3)内の処理で左側のフレーム(left.jsp)の入力 パラメータが必要だということです。  servlet1でleft.jspの入力パラメータをセッションオブジェクトに保管 し、servlet3でセッションオブジェクトから復元すれば実現は可能かと思 いました。  しかし、途中servlet2からの処理が大変重いものであり、セッションオ ブジェクトは一定時間がたつと無効になってしまうと聞いたのでタイトル のような方法を考えたのですが、見当がつかず、今回の質問に至りました。  request.getParameter("****"); ではもちろん取り出せないと思いますが、サーブレットで別フレームのパ ラメータを取り出すことは可能でしょうか?

    • ベストアンサー
    • Java
  • 動的に作成したラジオボタンの選択肢をサーブレットに渡す

    こんにちは。再度失礼します。 JSPで一覧表示された表からラジオボタンでひとつ選択し、サーブレット・Beanにその値を渡し、更新ページで更新処理、または削除処理を行わせたいと考えています。 更新用・削除用のサーブレットは別々です。 一覧表にはラジオボタンをDBに登録された名前が、DBにあるだけ(select * from テーブル)表示されることになっています。 下のソースはわかりやすいように3個だけもってくることにしてます。 【JSP】----------------------------------------------- <% for (int i = 0; i < 3; i++){ %> <tr><td> <input type"radio" name="choice" value="i"> </td><td> <%= [DBから取得した名前](i) %></td> <%= i %> <% } %> 【servlet】 String str = request.getParameter("choice") -------------------------------------------------------- ここで実行するとサーブレットに渡されたchoiceの値はvalueの変数 i になってしまいます。valueの値がサーブレットに渡されるのはわかっているのですが、i ではなく、[DBから取得した名前]をサーブレットに渡したいのですがどうしたらよいのでしょうか。 良い方法をご存知の方、ご教授よろしくお願いいたします。

    • ベストアンサー
    • Java
  • キャッシュ無効の状態で、セッション変数への影響は?

    こんにちわ。いつもお世話になってます。 現在会員制のホームページをPHPで制作中です。 IDやPASS等の情報をDB(MySQL)に格納し、ログイン時にDBにアクセスして、照合が出来たら会員である情報をセッション変数に保存して会員用ページを渡り歩く、といったものをイメージしています。 ですが、一つ困ったことが。 会員用コンテンツの中に、掲示板のようなものがあるのですが、投稿した直後に限り、自分の書き込みが反映されてないように表示されるのです。 (form actionは$_SERVER['PHP_SELF']を指定。同じページ内の上部の方で$_POSTを受け取って処理。処理した後はそのまま記事表示処理に移行。) 多分、キャッシュされているからこの様な動作になると思うのですが・・・。 投稿した後に、サイドに用意されているメニューバーから同じページにアクセスすると投稿が反映されて表示されます。 そこで、キャッシュさせない様に、PHPファイルの最上部で header("Content-Type: text/html; charset=Shift_JIS"); header("Expires: Thu, 01 Dec 1994 16:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); header("Cache-Control: no-cache,must-revalidate"); header("Cache-Control: post-check=0,pre-check=0",false); header("Pragma: no-cache"); を加え、キャッシュさせないように?しました。 実行してみたところ、投稿した直後でも無事に最新の状態を表示してくれるようになりました。 ここで本題です(冗長でゴメンナサイ・・・) 上記のコードでキャッシュを無効にした状態にしても、セッション変数は無事に動作してくれるのでしょうか? ローカルテストではセッション変数は無事に保持してくれるのですが、キャッシュやセッションに関して造詣が浅く、「キャッシュは無効にしてるけどセッション変数はキャッシュする」という矛盾した動作を指定している事に不安を感じます。 ルール上問題があるところがあれば指摘お願いいたします。 php.iniは以下の様に指定しています。 session.cache_limiter private_no_expire session.cache_expire 9999 session.auto_start off

    • 締切済み
    • PHP
  • jsp/サーブレット

    jsp サーブレットを勉強しています。 jspに入力された値を サーブレットに投げます。 サーブレットからjavaクラスに値を投げて javaクラスで値が正しいかどうかを判断します。 その結果をサーブレットに投げて、 サーブレットからjspに投げて jspで結果を表示する。というのは理解できました。 しかし私が行いたいのは、 クライアントがjspにアクセスしたときに、 javaクラスにある値をjspに表示させたいというものです。 この場合はサーブレットに何も投げるものがないのですが、 jsp→サーブレット→javaクラス→サーブレット→jsp このようにサーブレットを使って表示させるには、 どのようなプログラムを書いたらいいのでしょうか。 わかりにくい説明で大変申し訳ないですが、 具体的なプログラムを教えていただけるとありがたいです。 また、参考になりそうなURLがありましたら教えてください。 よろしくお願いします。

  • JSPとサーブレットとBean

    とある参考書には サーブレットからBeanを呼び、Beanからデータベースに接続して JSPで表示する。と書かれています。 しかし、とあるサイトには JSPファイルだけでデータベースに接続できるソース、 Beanを使用しなくてもデータベースに接続できるというソースが書かれていました。 Beanとは一体何なのでしょうか。と思うようになりました。JSPやサーブレットで接続することができるのであれば、Beanは不要なのでは?と思っています。 今、「Beanはデータベースに接続するだけのもの」としか理解できてなく、いまいちはっきりとしません。 Beanとは一体何なのでしょうか。 意見や参考できるサイトを教えていただけませんか、 よろしくお願い致します。

    • ベストアンサー
    • Java
  • 静的ページからのサーブレット起動について

    今、JSPとサーブレットの勉強を行っております。 サーブレット側でデータを取得して JSP側で表示を行いたいと思っているのですが フォームアクション等を行わずに、JSP⇒サーブレット⇒JSPと 実施する事は可能でしょうか? URLアクセス ⇒ JSPからサーブレットの処理を呼び出し ⇒ サーブレットから クラスを利用してデータを取得 ⇒ JSPへデータを渡して表示   というように、URLアクセスのみで一連の処理を行いたいです。 サーブレットからJSPにセッション経由でデータを渡して表示する事や JSPからクラスを利用する方法では成功していますが できるだけMVCモデルに準拠した方法で行いたく思っており かつ、コントローラとしてサーブレットを使ってみたくて このような事に挑戦しております。 可能かどうかだけでもわかると非常に有難いですので ご存知の方、どうかよろしくお願い致します。

    • ベストアンサー
    • Java