Сначала кэширование работало не во всех браузерах. Затем я заставил его работать во всех браузерах, кроме IE (IE8), добавив расширение .pdf к URL. Сервлет перестал вызываться после этого.
Я отображаю PDF-файл на веб-странице через тег EMBED, который загружает следующий URL:
http://localhost:7001/app/viewFile.pdf
Который генерируется Java-сервлетом со следующими заголовками:
response.addHeader("Content-Disposition", "inline;");
response.setHeader("Cache-control", "cache,max-age=600");
response.setContentType(mimeType);
response.setContentLength(contentLength);
Для отображения PDF во всех браузерах я использую Adobe Reader 9.2.0.
Как заставить это работать в IE тоже? Я заметил, что IE добавляет заголовок «Cache-Control: no-cache» к request , тогда как Safari, к примеру, этого не делает.