在我看來,你想在下載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 Servlet Filter來爲響應添加適當的參數,而不必修改您的應用程序。你可以這樣寫自己 - 應該是快易 - 雖然快速搜索發現Apache2的許可緩存過濾器:http://code.google.com/p/cache-filter/wiki/NoCacheFilter
我沒有用緩存過濾器,但一個快速脫脂表明,它會工作得很好,你。