zoukankan      html  css  js  c++  java
  • 通过response,设置缓存过期时间

    1.创建Servlet类继承HttpServlet

    /**
    * 设置缓存
    * 设置缓存时间
    */
    @WebServlet("/test11") //使用注解映射Servlet资源访问路径
    public class ServletTest11 extends HttpServlet {

      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("ServletTest11正在执行");
        //设置缓存过期时间(1小时)
        long outTime = System.currentTimeMillis()+100000000;
        response.setDateHeader("Expires",outTime);

        response.setContentType("text/html;charset=utf-8");
        response.getWriter().print("访问成功");

      }

    }

    2.通过IE浏览器访问(第1次访问)

      1)输入访问路径,服务器响应信息到浏览器,表示访问成功

          

      2)服务器处理了这一请求(同时第1次访问,服务器设置了浏览器缓存及缓存到期时间)

          

     3.通过IE浏览器(第2次访问)

      1)输入访问路径,页面出现响应信息,表示访问成功。

           

      2)接着我们看服务器是否处理了这一请求

      

       如上图,控制台没有打印信息。那么就可以判断了第2次访问并没有访问服务器,服务器并没有处理这一次请求。

       那么为什么呢,因为我们第1次访问的时候,设置了浏览器缓存。在缓存没有到期之前,以后的每次相同的请求过来,都会经过缓存,缓存会处理这一请求,不会访问服务器了。

      在实际场景中,假设把这个请求的次数放大N倍,相同的请求经过缓存来处理,会大大降低服务器的处理次数,缓解了服务器的压力。

  • 相关阅读:
    vue中$refs、$slot、$nextTick相关的语法
    js中hash、hashchange事件
    js中filter的用法
    ES6新特性-函数的简写(箭头函数)
    js中把ajax获取的数据转化成树状结构(并做成多级联动效果)
    jq中get()和eq()的区别
    new Date() 日期格式处理
    微信小程序 加载图片时,先拉长,再恢复正常
    一个例子理解ES6的yield关键字
    eclipse在光标停留在同一对象的背景色提示,开启与关闭
  • 原文地址:https://www.cnblogs.com/w1440199392/p/13959802.html
Copyright © 2011-2022 走看看