servlet设置缓存时间以及文件的下载

缓存时间的设置:

1 public void doGet(HttpServletRequest request, HttpServletResponse response)
2             throws ServletException, IOException {
3
4         response.setContentType("text/html;charset=UTF-8");
5         PrintWriter out = response.getWriter();
6         response.setDateHeader("Expires", System.currentTimeMillis()+60*60*1000);//缓存时间一小时
7         out.write("hello world");
8 }

通知客户端文件的下载,此处以图片为例:

 1     public void doGet(HttpServletRequest request, HttpServletResponse response)
 2             throws ServletException, IOException {
 3         response.setContentType("text/html");
 4         ServletContext context=getServletContext();
 5
 6         String path=context.getRealPath("/picture.jpg");
 7         String fileName=path.substring(path.lastIndexOf("\\")+1);
 8         InputStream in=new FileInputStream(path);
 9
10         //通知客户端文件的下载    URLEncoder.encode解决文件名中文的问题
11         response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(fileName, "utf-8"));
12         response.setHeader("Content-Type", "application/octet-stream");
13
14         OutputStream out=response.getOutputStream();
15         int length=-1;
16         byte []buffer=new byte[1024];
17         while((length=in.read(buffer))!=-1){
18             out.write(buffer,0,length);
19         }
20         in.close();
21     }
时间: 2024-10-07 23:31:20

servlet设置缓存时间以及文件的下载的相关文章

JAVA代码时间SFTP文件的下载

参考文章:http://blog.csdn.net/smallerpig/article/details/50976191 SFTP文件的下载与FTP文件的下载差别较大,需要下载jsch-0.1.54jar包 package com.cd.util; import com.jcraft.jsch.JSchException; public class SftpDownloadTestScript { public static void main (String[] args)throws JS

springcache集成Guava 设置缓存时间

上一篇讲到了springboot集成springcahce :https://www.cnblogs.com/a565810497/p/10931426.html 但是缓存的有效时间无法设定. 这里就讲一下如何使用guava设定springcahce的有效时间 第一步:添加maven依赖: <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>25.

Nginx优化---隐藏版本号与网页缓存时间

配置Nginx隐藏版本号 在生产环境中,需要隐藏Nginx的版本号,以避免安全漏洞的泄漏 查看方法●使用fiddler I具在Windows客户端查看Nginx版本号在CentOS系统中使用"curl -I 网址"命令查看 Nginx隐藏版本号的方法●修改配置文件法●修改源码法 修改配置文件法 1.Nginx的配置文件中的server_ tokens 选项的值设置为off [[email protected] conf]# vim nginx.conf ..... server_ to

Nginx服务优化(三)配置网页缓存时间

配置Nginx网页缓存时间 当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度.一般针对静态网页设置,对动态网页不设置缓存时间.可在Windows客户端中使用fiddler查看网页缓存时间. 设置方法 可修改配置文件,在http段.或者server段. 或者location段加入对特定内容的过期参数 1.将图片复制到站点目录 [[email protected] nginx-1.12.2]# cd /mnt/tools/

redis基本操作,基于StringRedisTemplate,存储,取值,设置超时时间,获取超时时间,插入list操作

@Autowired private StringRedisTemplate stringRedisTemplate; @GetMapping("/test") void test() { stringRedisTemplate.opsForValue().set("liuqi", "13221050705", 15, TimeUnit.MINUTES); String str1 = stringRedisTemplate.opsForValue

redis 一二事 - 设置过期时间,以文件夹形式展示key显示缓存数据

在使用redis时,有时回存在大量数据的时候,而且分类相同,ID相同 可以使用hset来设置,这样有一个大类和一个小分类和一个value组成 但是hset不能设置过期时间 过期时间只能在set上设置 1 // 向redis中添加缓存 2 jedisClient.set(REDIS_ITEM_KEY + ":" + itemId + ":" + ITEM_KEY, JsonUtils.objectToJson(item)); 3 // 设置key的过期时间 4 jed

多个 gradle 文件夹 \.gradle\wrapper\dists\ 设置gradle不是每次都下载

韩梦飞沙  韩亚飞  [email protected]  yue31313  han_meng_fei_sha 设置gradle不是每次都下载 \.gradle\wrapper\dists\ ======= 在你导入项目的时候,有个选项的: 你要是选了Use default gradle mapper就会下载一次,Use local gradle distribution就会用你制定的gradle了 ====== 设置gradle不是每次都下载 \.gradle\wrapper\dists\

如何设置让iis服务器支持.apk文件的下载

随着智能手机的普及,越来越多的人使用手机上网,很多网站也应手机上网的需要推出了网站客户端,.apk文件就是安卓(Android)的应用程序后缀名,默认情况下,使用IIS作为Web服务器的无法下载此文件,那么怎么才能让IIS支持.apk文件的下载呢? IIS服务器不能下载.apk文件的原因:iis的默认MIME类型中没有.apk文件,所以无法下载. IIS服务器不能下载.apk文件的解决办法:既然.apk无法下载是因为没有MIME,那么添加一个MIME类型就可以了. IIS服务器不能下载.apk文

IIS 设置文件可下载

IIS遇到了文件不能下载的问题.为了让IIS能下载扩展名是INI的文件,我们需要如此操作:(括号内的是英文版本的名字) 打开"IIS管理器(InternetInformationServices(IIS)Manager)" 选择到你的站点.单击右键.选择"属性(Properties)" 单击"HTTP头(HTTPHeaders)"选项卡 单击"MIME类型(MIMETypes)" 单击"新建(NEW)" 在