- - PR -
キャッシュの制御について
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 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"> 色々と対策したのですが、解決できません。 何かアドバイスを頂ければと思います。 よろしくお願いします。 |
|
投稿日時: 2003-07-17 10:16
クエリストリングを含めたURLが同じだとキャッシュが表示されるので、
GETに渡すパラメータにユニークなIDを渡すといいでしょう。 「new Date().toString()」を url encode した物などどうでしょう。 |
|
投稿日時: 2003-07-17 10:55
ご回答いただきありがとうございました。
GETに渡すパラメータにユニークなIDを渡すことで、 即座に解決する事が出来ました。 本当に助かりました。 ありがとうございました。 |
|
投稿日時: 2003-07-18 00:32
解決したことは良いとして、
そもそも setHeader()によるキャッシュコントロールと、 METAタグによるキャッシュコントロールの違いを理解して システム開発してるのでしょうか。 将来セキュリティ上の問題を起こさないかチョッピリ心配です。 |
|
投稿日時: 2003-07-18 08:38
そうですね。
今回の不具合がなければ、ありま意識しなかったかもしれません。 セキュリティの面からも、 もう少し掘り下げて勉強しないといけないと思ってます。 アドバイスありがとうございました。 |
1
