设置响应缓存时间
对于不经常变化的数据,在 Servlet 中可以为其设置合理的缓存时间值,以避免浏览器频繁向服务器发送请求,从而提升服务器性能。
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String data = "abcddfwerwesfasfsadf";
/**
* 设置数据合理的缓存时间值,以避免浏览器频繁向服务器发送请求,提升服务器的性能
* 这里是将数据的缓存时间设置为1天
*/
response.setDateHeader("expires", System.currentTimeMillis() + 24 * 3600 * 1000);
response.getOutputStream().write(data.getBytes());
}Code language: JavaScript (javascript)
通过 response.setDateHeader("expires", ...) 设置 Expires 响应头,告诉浏览器对该资源进行缓存。缓存时间内,用户再次访问(包括刷新页面)时,浏览器不会向服务器发送请求,而是直接从本地缓存中读取数据。
注意:
Expires头使用的是 GMT 时间(毫秒值),上述代码通过System.currentTimeMillis() + 24 * 3600 * 1000计算出当前时间之后一天的毫秒值,浏览器据此判断缓存是否过期。如需兼容 HTTP/1.1 的缓存控制,可配合Cache-Control头一起使用。