拓展-response响应头设置总结

来源:互联网 发布:centos忘记密码 编辑:程序博客网 时间:2024/04/29 17:50

1,设置输出不缓存

            response.setHeader("Pragma", "no-cache");            response.setHeader("Cache-Control", "no-cache");            response.setDateHeader("Expires", 0);
  • 1
  • 2
  • 3

2,必须使用Http Head头“Cache-Controll:max-age=秒数”来控制缓存时间,如果不指定将不缓存。

response.setHeader("Cache-Controll", "max-age=15");
  • 1

3,Cache-Control头域 
  Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下: 
  Public指示响应可被任何缓存区缓存。 
  Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。 
  no-cache指示请求或响应消息不能缓存 
  no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。 
  max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。 
  min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。 
  max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息

4,输出某种文件

   // 重置response对象中的缓冲区,该方法可以不写,但是你要保证response缓冲区没有其他数据,否则导出可能会出现问题,建议加上            response.reset();            String filename = "用户信息"                    + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())                    + ".xls";// 设置下载时客户端Excel的名称,此处需要用到encodeFilename()方法来转换编码,否则中文会被过滤掉            filename = generator.encodeFilename(filename, request);            response.setHeader("Content-disposition", "attachment;filename="                    + filename);            response.setCharacterEncoding("utf-8");            // 由于导出格式是excel的文件,设置导出文件的响应头部信息            response.setContentType("application/vnd.ms-excel");            // 生成excel,传递输出流            // 用response对象获取输出流            OutputStream os = response.getOutputStream();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

5,输出图像

// 禁止图像缓存。        response.setHeader("Pragma", "no-cache");        response.setHeader("Cache-Control", "no-cache");        response.setDateHeader("Expires", 0);        response.setContentType("image/jpeg");        // 将图像输出到Servlet输出流中。        ServletOutputStream out = response.getOutputStream();        ImageIO.write(captchaEngine.generatorCaptcha(request), "jpeg", out);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

6,其他后续再补充

阅读全文
0 0