I use image caching by reading a BLOB and then streaming using BufferedOutputStream. I set the following headers:
res.setHeader("Last-Modified", modDate);
res.setHeader("Expires", expTime.toString());
res.setHeader("Cache-Control", "public, max-age=31536000");
The caching works always except for the refresh button. If we load a page using menu click the images are loading from cache but if we click refresh button of browser it comes from server. Any idea?