通过Java过滤器:
String url = req.getRequestURI().toLowerCase();
if (url.indexOf(".png") != -1
|| url.indexOf(".jpg") != -1
|| url.indexOf(".gif") != -1
|| url.indexOf(".htm") != -1) { // 缓存有效期设置为一年
res.setDateHeader("Expires",nowTime+365*60*60*1000);
res.setIntHeader("max-age", 31536000);
res.setHeader("Cache-Control", "public");
res.setHeader("Pragma", "Pragma");
}
else if (url.indexOf(".css") != -1
|| url.indexOf(".js") != -1 && url.indexOf(".jsp") == -1
|| url.indexOf(".htc") != -1
|| url.indexOf(".xsl") != -1)
{ // 缓存有效期设置为一天
res.setDateHeader("Expires",nowTime+24*60*60*1000);
res.setIntHeader("max-age", 86400);
res.setHeader("Cache-Control", "public");
res.setHeader("Pragma", "Pragma");
}
看上去不错但是静态文件(img/css/js etc)的请求就不应该由JAVA容器(如Tomcat)来负责,应该是HTTP服务器(如Apache)才是做这个的
String url = req.getRequestURI().toLowerCase();
if (url.indexOf(".png") != -1
|| url.indexOf(".jpg") != -1
|| url.indexOf(".gif") != -1
|| url.indexOf(".htm") != -1) { // 缓存有效期设置为一年
res.setDateHeader("Expires",nowTime+365*60*60*1000);
res.setIntHeader("max-age", 31536000);
res.setHeader("Cache-Control", "public");
res.setHeader("Pragma", "Pragma");
}
else if (url.indexOf(".css") != -1
|| url.indexOf(".js") != -1 && url.indexOf(".jsp") == -1
|| url.indexOf(".htc") != -1
|| url.indexOf(".xsl") != -1)
{ // 缓存有效期设置为一天
res.setDateHeader("Expires",nowTime+24*60*60*1000);
res.setIntHeader("max-age", 86400);
res.setHeader("Cache-Control", "public");
res.setHeader("Pragma", "Pragma");
}
看上去不错但是静态文件(img/css/js etc)的请求就不应该由JAVA容器(如Tomcat)来负责,应该是HTTP服务器(如Apache)才是做这个的