- PR -

キャッシュの制御について

1
投稿者投稿内容
HARURU
会議室デビュー日: 2003/07/16
投稿数: 3
投稿日時: 2003-07-16 17:33
初めて投稿させて頂きます。
Servlet+JSPで開発しています。
使用しているブラウザはIE5.5です。

JSP(B)内に表形式で複数行表示し、下記の様にリンクを指定しています。
「<a href = "/As? Key1=xxx Key2=yyy"TEST</td>」
名称をクリックすると、Servlet(As)へKEYを渡し、一旦doGetで受け取り、
doPostでJavaBeansを実行して、JSP(C)を表示する処理をしています。
この後、一連の更新処理を行い、JSP(B)に戻ってきます。

このとき、1回目の処理ではServlet(As)へ正しく遷移し実行されるのですが,
JSP(B)に戻って来てから、同じ行を選択した際2回目以降の処理では、
Servlet(As)へ遷移せず、データ無しの状態でJSP(C)が表示されてしまいます。
ですが、ブラウザで「更新」をかけると正しい画面が表示されます。
しかし、1回目と違う行を選択すると、正常に動作します。

似たような現象が下記にあり、
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1080&forum=12

キャッシュを無効にする為のレスポンスヘッダ情報をServletに付加したり、
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
JSPに以下を加えたり、
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-control" CONTENT="no-cache">
<META http-equiv="Expires" content="0">
色々と対策したのですが、解決できません。
何かアドバイスを頂ければと思います。
よろしくお願いします。
Shane
大ベテラン
会議室デビュー日: 2003/06/06
投稿数: 132
お住まい・勤務地: Vancouver, BC
投稿日時: 2003-07-17 10:16
クエリストリングを含めたURLが同じだとキャッシュが表示されるので、
GETに渡すパラメータにユニークなIDを渡すといいでしょう。
「new Date().toString()」を url encode した物などどうでしょう。
HARURU
会議室デビュー日: 2003/07/16
投稿数: 3
投稿日時: 2003-07-17 10:55
ご回答いただきありがとうございました。
GETに渡すパラメータにユニークなIDを渡すことで、
即座に解決する事が出来ました。
本当に助かりました。
ありがとうございました。
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2003-07-18 00:32
解決したことは良いとして、
そもそも setHeader()によるキャッシュコントロールと、
METAタグによるキャッシュコントロールの違いを理解して
システム開発してるのでしょうか。
将来セキュリティ上の問題を起こさないかチョッピリ心配です。
HARURU
会議室デビュー日: 2003/07/16
投稿数: 3
投稿日時: 2003-07-18 08:38
そうですね。
今回の不具合がなければ、ありま意識しなかったかもしれません。
セキュリティの面からも、
もう少し掘り下げて勉強しないといけないと思ってます。
アドバイスありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)