JSPでのブラウザキャッシュ無効化

先週末に既存のWebアプリに小さな機能を追加実装してリリースしたのですが、今日使用者から不具合の連絡がありました。

追加した機能はサーブレット+JSPで、既存のWebアプリページからボタンを押すと呼び出され、ちょっとした処理をして結果をポップアップした別窓で表示するというものですが、連続して使用すると、一回前の実行結果が表示されるとのこと。

ブラウザのキャッシュが表示されているのだろうということはすぐに見当がつきましたので、少し検索などしながら対処方法を調べたところ、JSPのブラウザキャッシュ無効化の方法がいくつかと紹介されていました。

たとえば、JSPの基本「暗黙オブジェクト」をさらに極める (2/3):基礎から学ぶサーブレット/JSP(6) - @ITなど。基本的にはJSPのレスポンスヘッダにキャッシュを無効化する設定を何種類か追加するということ(何種類か必要なのは、ブラウザやプロキシの処理方法が色々あるため)。

定常的にWebアプリを開発している人にとっては常識的なことなんでしょうが、勉強になりました。

しかしこの問題、私ががテストしたWindowsXP + IE6の環境では起きなかったんですよ。連絡してきた人はWindowsNT + IE6の環境で、そこでは100%再現するとのこと。やっぱりWebアプリは本筋とずれたところで難しいですね。