- PR -

Netscape7.0でのJSPキャッシュ無効について

1
投稿者投稿内容
やっち
会議室デビュー日: 2002/10/18
投稿数: 6
投稿日時: 2002-10-21 09:49
現在、jspとservletを使用してweb開発を行っております。

入力フォームのある、jspページにて下記コードを記述して、キャッシュOFFを
行っておりますが、NetScape7.0を使用するとキャッシュOFF機能がうまく働きません。

response.setHeader( "Pragma","no-cache" );
response.setHeader( "Cache-Control","no-cache" );
response.setDateHeader( "Expires", 0 );

<現象>
1.入力フォームでテキストなどを入力。
 (キャッシュOFFにして、常にクラスから値を取得します。)
2.サーブレットにpostしてクラスに値を格納して、次ページを表示。
3.「戻る」ボタンをクリックにて、前画面に戻る。
4.キャッシュOFFのため、クラスの情報を読み出すはずが、入力フォームのみ
 初期値(1.を表示した状態)に戻り、クラスから情報を取得していません。
5.「再読込み」ボタンをクリックすると、クラスから値を読み出す。

という、状態になっています。
ちなみにIE5.5,6.0、NS4.5,6.0では正常に動作します。

どなたかご教授くださいませ。
情報不足などありましら、ご指摘ください。
やっち
会議室デビュー日: 2002/10/18
投稿数: 6
投稿日時: 2002-10-21 10:34
いろいろ調べていましたが、どうやら正常に動作するページと
動作しないページがありました。
(ただし、IEなどを使用する場合は、すべて正常。)
ですので、もうしばらく調査いたします。

現象がわかりましたら、ご連絡したいと思います。
やっち
会議室デビュー日: 2002/10/18
投稿数: 6
投稿日時: 2002-10-22 09:14
すみません。また、自己レスです。
調べた結果、どうやら非SSLでNetscape7.0を使用すると上記なような現象が
発生します。

まとめると、
1.キャッシュOFFでテキスト入力などのできるフォームを表示。
 (この時、あるクラスから初期値を取得する。)
2.テキストを入力して、データをサーブレットに送信。
3.サーブレットでクラスに値を書き込んで、次画面を表示。
4.戻るボタンクリックにて「1.」画面へ戻る。
5.「1.」画面はキャッシュOFFのため、再びクラスから値を呼び出す
 はずが、テキスト欄が空白となりクラスから情報を読み出さない。
 (再読込みすると表示します。)

となります。
ですので、Netscape7.0でキャッシュOFFする場合は、
注意が必要だと思います。
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-10-23 02:29
Mozilla-1.1 でも同様でしたので、バグかと思い、bugzilla.mozilla.org に投げてみたところ、
「no-cache は session history には影響を与えないと RFC に明記してある。no-store 使え」
とのこと。
http://bugzilla.mozilla.org/show_bug.cgi?id=176014

<% response.setDateHeader("Date", System.currentTimeMillis()); %><%
%><% response.setDateHeader("Expires", 0); %><%
%><% response.setHeader("Pragma", "no-cache"); %><%
%><% response.setHeader("Cache-Control", "no-cache"); %><%
%><% response.addHeader("Cache-Control", "no-store"); %><%
%><% response.addHeader("Cache-Control", "max-age=0"); %><%
%><%@page contentType="text/html" %><%@page import="java.util.*" %>
<html>
<body>
<%= new Date() %><br>
<form action="expire2.jsp"><input type=submit></form>
</body>
</html>

ならうまくいくでしょう。

[ メッセージ編集済み 編集者: しょむ 編集日時 2002-10-23 02:30 ]
やっち
会議室デビュー日: 2002/10/18
投稿数: 6
投稿日時: 2002-10-23 10:10
しょむさんのおっしゃる通りに設定したら、正しく動作しました。
ありがとうございました。

でも、どうしてNetscape7.0はダメになったんでしょうね。
Netscape4.Xとか6.Xでは動作していたんですけどね...
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-10-23 10:29
厳密に規格に従うようになったからでしょう。
# もしくは、RFC のほうが update されたのかもしれませんが。
1

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