是否可以在网页中缓存pdf文件?

时间:2016-07-19 07:02:47

标签: java jsp pdf caching cache-control

我有一个jsp页面,用于从服务器下载pdf文件。当我从浏览器请求jsp页面时,jsp从数据库中读取文件信息,从文件中获取输入流并写入ServletOutputStream。 像这样的伪代码:

response.setContentType("application/pdf");
response.setHeader("Content-disposition","inline;filename=URLEncoder.encode(filename)");
response.setHeader("Cache-Control","max-age=3600");
ServletOutputStream os = response.getOutputStream();
FileInputStream in = new FileInputStream(new File(filePath));
int size = 0;
byte[] buffer = new byte[512];
while((size=in.read(buffer))!=-1){
  os.write(buffer,0,size);
}

请求完成后,下载的pdf在浏览器中打开。多次下载相同的文件,因此我们要将它们缓存到本地文件系统,以便每个请求的返回状态代码为304(未修改),但缓存控制不起作用,有人可以帮忙吗?

1 个答案:

答案 0 :(得分:-1)

此问题通常由应用程序前面的NGINX或Varnish等反向代理解决。或者,您可以使用CDN。

相关问题