zoukankan      html  css  js  c++  java
  • 使用response来控制浏览器的缓存

            缓存这个技术在我们实际的开发中是非常常用的,也是非常重要的一项技术。主要用于客户端(浏览器)向服务器端请求的是一些比较大的数据,并且这个数据在短时间内不会经常发生变化的情况,比如一些网站的logo图片,它是一个网站的标志,一般不会发生变化,如果不缓存的话,而logo图片又比较大的话,那么浏览器每次发送请求时,服务端都要返回logo图片这个大数据信息,会影响到服务器的性能和效率,服务器端变慢了,也势必会导致用户页面看到的数据加载变慢。如果我么对图片进行一个合适时间内的缓存的话,这样会大大提高服务端的效率,还能提高客户端的用户体验呢!

      使用response来设置缓存,主要时设置http的响应头的expires的信息,示例代码如下:

    package com.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * 设置缓存
     * 
     * @author Administrator 缓存是当浏览器第一次发送请求,如果服务器设置了缓存,就会将第一次请求获得的数据缓存在浏览器,那么在缓存时间内,浏览器是不会想服务器发送请求的,直接从缓存中获取数据
     */
    @WebServlet("/buff.do")
    public class BufferServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 这里的时间是从1970开始,所以要设置当前时间+缓存的时间,时间单位为毫秒,这里缓存的时间为1分钟
            response.setDateHeader("expires", System.currentTimeMillis() + 1000 * 60);
            // 用来测试在缓存时间内,浏览器是否还向服务端发送请求
            System.out.println("enter");
            // 模拟的大数据
            String bigData = "this is a big data,but it is not change.";
            response.getWriter().print(bigData);
        }
    
    }

    在缓存时间内无论你发送了多少次请求输出的结果:

    enter

    并且从请求的响应头

    Server: Apache-Coyote/1.1
    Expires: Fri, 07 Jul 2017 07:49:26 GMT
    Content-Length: 40
    Date: Fri, 07 Jul 2017 07:48:26 GMT

    从上面的结果可以看出,当我们在服务端设置了缓存了,那么在缓存时间内,浏览器发送请求,取得数据时从本地缓存中获取的。

    至此,一个简单的使用response实现缓存的小案例演示完毕,有不足的地方,希望大家多多提意见

  • 相关阅读:
    selenium测试(Java)-- 键盘事件(七)
    selenium测试(Java)--鼠标事件(六)
    selenium测试(Java)--元素操作(五)
    selenium测试(Java)--浏览器控制(四)
    selenium测试(Java)(三)
    selenium定位方法(java实例)(二)
    selenium测试环境搭建(一)
    HTML5前端(移动端网站)性能优化指南
    dede使用方法----如何调用最新文章,最热文章,友情链接
    dede使用方法---如何调用指定栏目
  • 原文地址:https://www.cnblogs.com/nanyangke-cjz/p/7132636.html
Copyright © 2011-2022 走看看