ServletWeb缓存解决问题

(1)为什么我们要防止这个问题的浏览器页面缓存:

所以在不须要缓存的页面中须要实现不缓存页面。

代码例如以下:

package com.lc.HttpTest;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CacheJiejue extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html;charset=utf-8");
		//指定该页面不缓存
		response.setDateHeader("Expires",-1); //IE游览器支持的

		//保证兼容性
		response.setHeader("Cache-Control", "no-cache");
		response.setHeader("Pragme", "no-cache");

	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		this.doGet(request, response);
	}

}

(2)可是假设要实现特定时间内的页面缓存 则代码例如以下:

package com.lc.HttpTest;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CacheJiejue extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html;charset=utf-8");
		//指定该页面不缓存
		//response.setDateHeader("Expires",-1); //IE游览器支持的

		//缓存一定的时间  缓存 一天的时间
		response.setDateHeader("Expires",System.currentTimeMillis()+3600*1000*24);
		//保证兼容性
		response.setHeader("Cache-Control", "no-cache");
		response.setHeader("Pragme", "no-cache");

	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		this.doGet(request, response);
	}

}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-13 00:05:29

ServletWeb缓存解决问题的相关文章

nginx+Memcached 缓存设计

单页面缓存方案 单静态页缓存 解决问题场景 常见的缓存设计利用System.Web.Cache 保存在内存内,效率高,可以减轻数据库访问的压力.但是Web除了获取数据之外,还有呈现页面渲染,生成HTML很多功能都是消耗性能.在Web层也需要一个缓存,同时柔性设计,应用代码不需要大变动. 架构 客户端 访问 /Report Nginx 接收请求,判断Memcached是否存在以该网址的Key,存在直接返回不经过IIS,不存在 ,透传到IIS,并在Memacched中保存 优势:memcached性

错误记录(2)

添加依赖报错unable to resolve dependency for:xxx 解决方案: 0.请先确认clean Project过(有时候可能还需要清除Android Studio的缓存) 1.如果是刚安装Android Studio,先检测是否为离线模式.离线模式当然没有网络,当然就无法下载依赖了 2.如果是大陆的网络,经常会有波动.因为我们下载依赖,需要“科学”上网,所以,我们可以选择阿里镜像.这样就不会受到网络波动的影响了 主要参考到这篇博文,通过方法0清除缓存解决问题: 版权声明

xcode替换同名图片后,显示的还是旧图片。各种清除缓存都没有解决问题

解决方法:如图 把同名的图片的imageset 删除就行

麦子学院ios笔记:IOS把图片缓存到本地的几种方法

把ios的图片缓存到本地的方法有几种?现在来看看学生在麦子学院学习ios开发的笔记中有讲到哪几种方法呢? <code>把图片缓存到本地,在很多场景都会用到,如果是只储存文字信息,那建一个plist文件,或者数据库就能很方便的解决问题,但是如果存图片到沙盒就没那么方便了.这里介绍两种保存图片到沙盒的方法. </code> 一.把图片转为base64的字符串存到数据库中或者plist文件中,然后用到的时候再取出来 <code class="hljs" obje

如何正确使用缓存技术

缓存技术是用来提升程序运行性能的常见手段,如你所见, 阿里巴巴.新浪微博.美团网等互联网龙头企业都是用缓存技术来提升自己家网站的性能.然而,任何事物都有两面性, 缓存技术使用得当带来的好处自然不言而喻, 但是如果使用不当, 产生的副作用也够让人喝一壶的. 我们写服务器程序时,使用缓存的目的无非就是减少数据库访问次数降低数据库的压力和提升程序的响应时间, 然而根据具体的使用场景又可以派生出无数种情况, 比如说 程序频繁读取数据库, 但是查询获得的结果却总是相同的,这部分相同的结果是不是可以放入缓存

查询数据过多页面反应慢引入缓存解决方案(Redis、H2)

问题:原系统查询接口不支持分页也不可能加入分页支持,导致Ajax查询数据过多,返回数据达到2W多条记录时响应已经极慢,查询功能不要求数据实时性,页面反应速度极慢.体验不好:经排查是由于数据量过大导致写回页面的时候慢,实现是直接Servlet输出流写到页面上(output.write(buffer, 0, b)): 需求变更:加快页面相应速度,页面要有分页功能,可以改变原接口 在这种情况下有两种解决方案: 1.前端js分页 2.加入第三方缓存部件(内存数据库等) 两种解决方案的缺点: 第一种方案的

Phalcon之缓存对象关系映射(Caching in the ORM)

现实中的每个应用都不同,一些应用的模型数据经常改变而另一些模型的数据几乎不同.访问数据库在很多时候对我们应用的来说 是个瓶颈.这是由于我们每次访问应用时都会和数据库数据通信,和数据库进行通信的代价是很大的.因此在必要时我们可以通过增加 缓存层来获取更高的性能. 本章内容的重点即是探讨实施缓存来提高性能的可行性.Phalcon框架给我们提供了灵活的缓存技术来实现我们的应用缓存. 缓存结果集(Caching Resultsets)? 一个非常可行的方案是我们可以为那些不经常改变且经常访问的数据库数据

ASP.NET 缓存技术分析

缓存功能是大型网站设计一个很重要的部分.由数据库驱动的Web应用程序,如果需要改善其性能,最好的方法是使用缓存功能.可能的情况下尽量使用缓 存,从内存中返回数据的速度始终比去数据库查的速度快,因而可以大大提供应用程序的性能.毕竟现在内存非常便宜,用空间换取时间效率应该是非常划算的.尤 其是对耗时比较长的.需要建立网络链接的数据库查询操作等. 对于web页面的缓存,WebForm与ASP.NET MVC有不同的语法.在WebForm中, <%@ OutputCache Duration="6

Angularjs在360兼容模式下取数据缓存问题解决办法

测试提了一个bug,在360浏览器兼容模式下,删除页面数据需要手动刷新浏览器才能看到最新的数据.首先要复现当时的问题,很容易就复现了,但是发现在360浏览器兼容模式下无法打开开发者工具.好在经过反复重装之后,终于打开了开发者工具,经过跟踪发现,第一次删除数据时可以正常刷新,第二次或以后的删除将无法刷新,跟踪代码,发现通过异步请求的数据正常的返回并且绑定了.点击搜索按钮,也无法实现刷新,但是点击分页,发现可以翻页.初步推断是浏览器缓存了异步请求数据,跟踪比较返回的数据发现,推断是正确的.于是从网上