Ajax与JSP防止缓存

来源:互联网 发布:下载软件 纳米盒子 编辑:程序博客网 时间:2024/05/16 08:46
一:清除AJAX缓存的方法介绍:
1.在ajax发送请求前加上xmlHttp.setRequestHeader("If-Modified-Since","0");
2.在ajax发送请求前加上xmlHttp.setRequestHeader("Cache-Control","no-cache");
3.在Ajax发送的URL参数后加上随机数,如:"?fresh="+Math.random()//此处的fresh参数可以任意取名
4.在Ajax发送的URL参数后加上时间戳,如:"?timestamp="+new Date().getTime()
5.用Ajax的POST方式代替GET方式.
6.在Ajax提交到的服务器端的java代码中使用如下代码:
Java代码 复制代码
  1. public ActionForward change(ActionMapping mapping, ActionForm form, HttpServletRequest request,         HttpServletResponse response) throws Exception {   
  2. String idCard=request.getParameter("idCard");
  3.   EntryService service = (EntryService) getBean("entryService");
  4.   String result = service.enterType(idCard);
  5.   
  6.   response.setContentType("text/xml;charset=utf-8");
  7.   //ajax 指示IE浏览器(客户端)不要缓存页面,服务器端的JSP程序可以编写如下
  8.   response.setHeader("Pragma","No-cache");    
  9.   response.setHeader("Cache-Control","no-cache");    
  10.   //Expires实体报头域给出响应过期的日期和时间。为了让代理服务器或浏览器在一段时间以后更新缓存中(再次访问曾访问过的页面时,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期的时间。
  11.   response.setDateHeader("Expires", 0); 
  12.   PrintWriter out =response.getWriter();
  13.   out.write(result);
  14.   out.close();
  15.   return null;
  16.  
public ActionForward change(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); .......................................... .......................................... .......................................... }


二:JSP页面禁止缓存方法介绍:
1.使用java提供的方法,在JSP或者servlet中都可以使用如下代码:
Java代码 复制代码
  1. <%   
  2.     response.setHeader("Pragma""No-cache");   
  3.     response.setHeader("Cache-Control""no-cache");   
  4.     response.setDateHeader("Expires"0);   
  5.  %>  
<% response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); %>


2.使用HTML标记,如下面:
Java代码 复制代码
  1. <HEAD>    
  2.     <META HTTP-EQUIV="Pragma" CONTENT="no-cache"   
  3.     <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"   
  4.     <META HTTP-EQUIV="Expires" CONTENT="0"   
  5. </HEAD>    
原创粉丝点击