美文网首页
动态页面JSP实现Last-Modified缓存

动态页面JSP实现Last-Modified缓存

作者: 宋雾代 | 来源:发表于2019-02-15 09:26 被阅读0次

    使用的是tomcat服务器。

    由于动态页面,服务器并不会在请求中加入Last-Modified信息。所以页面不会被缓存。要实现缓存,需要我们自己去编写。我把它写在filter中,以下是java代码。

    String date = Config.getString("Last-Modified","");//从配置文件中读取最后更新时间。
    
    SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd-HHmm");
    
    Date time = new Date();
    
    if(!"".equals(date)){
        try {
            time = format.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
    res.setDateHeader("Last-Modified", time.getTime()); //将日期输出到响应头中
    res.setHeader("Cache-Control", "public"); // HTTP/1.1 开启缓存
    res.setHeader("Pragma", "Pragma"); // HTTP/1.0开启缓存
    Object lastDate = req.getHeader("If-Modified-Since"); //从请求头中获取浏览器送过来的上次修改时间
    
    if(lastDate!=null){
        long lastModified = Date.parse(lastDate.toString());
        if(time.getTime() == lastModified) res.setStatus(304); //如果相等则返回304状态码
    }
    

    相关文章

      网友评论

          本文标题:动态页面JSP实现Last-Modified缓存

          本文链接:https://www.haomeiwen.com/subject/vyfkeqtx.html