PDFファイルをダウンロードするときにキャッシュを無効にしたいようです。DownloadStream
コンテンツをストリーミングするためにを使用していると仮定すると、Content-Disposition
およびCache-Control
ヘッダーを次のように設定するとうまくいくはずです。
DownloadStream stream = new DownloadStream(getStreamSource().getStream(), contentType, filename);
stream.setParameter("Content-Disposition", "attachment;filename=" + filename);
// This magic incantation should prevent anyone from caching the data
stream.setParameter("Cache-Control", "private,no-cache,no-store");
// In theory <=0 disables caching. In practice Chrome, Safari (and, apparently, IE) all ignore <=0. Set to 1s
stream.setCacheTime(1000);
すべてのVaadin リクエストのキャッシュを無効にしたい場合は、AbstractApplicationServlet のソースを調べて、 などのメソッドを拡張する#serveStaticResourcesInVAADIN
必要があります。これらの多くはプライベート メソッドであるため、これは非常に難しい作業です。
より簡単な方法は、アプリをまったく変更せずに、Http サーブレット フィルターを使用して適切なパラメーターを応答に追加することです。あなたはこれを自分で書くことができます - 簡単なはずです - クイック検索は Apache2 ライセンスの Cache-Filter を見つけます: http://code.google.com/p/cache-filter/wiki/NoCacheFilter
私は Cache-Filter を使用したことはありませんが、簡単に調べてみると、うまく機能することがわかります。