有关页面缓存问题.这个问题上网找了好多.但发觉各种解决方法,都彼此分离,没有一篇统一的解决方法,本人近日,也遇到了页面缓存的问题,根据网上各页面缓存的解答,做了一个总结。
1.服务器端缓存的问题,防止JSP页面缓存:
-
<%
-
//将过期日期设置为一个过去时间
-
response.setHeader("Expires","Sat,6May199512:00:00GMT");
-
//设置HTTP/1.1no-cache头
-
response.setHeader("Cache-Control","no-store,no-cache,must-revalidate");
-
//设置IE扩展HTTP/1.1no-cacheheaders,用户自己添加
-
response.addHeader("Cache-Control","post-check=0,pre-check=0");
-
//设置标准HTTP/1.0no-cacheheader.
-
response.setHeader("Pragma","no-cache");
-
%>
当然,每一个页面都包含这些代码会很繁琐,可以通过自定义过滤器(Filter)的方法来处理相关的页面
2.防止html页面缓存
-
<metahttp-equiv="pragma"content="no-cache">
-
<metahttp-equiv="cache-control"content="no-cache">
-
<metahttp-equiv="expires"content="0">
3.防止Ajax缓存
如果,你的页面,已经设置了防止JSP,HTML的页面缓存,但发觉页面缓存,始终存在,就要考虑是否Ajax造成的页面缓存了。
1)设置了,如上1,2之后
Ajax缓存,产生的原因是:request, url的地址上:
IE中如果XMLHttpRequest提交的URL与历史一样则使用缓存,根本不向服务器端提交。因此无法取到刚提交的数据。
针对ajax,需要如下设置:
方法一:加时间戳 var url = BaseURL + "&timeStamp=" + new Date().getTime();
方法二:加随机数 var url = BaseURL + "&r=" + Math.random();
总结:原引(http://www.javaeye.com/topic/150162)
在jsp页面中,光是使用html的<meta> tag是无法禁止缓存的。一定要加上
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
有人肯定会说,这个跟html的tag设置没有不同啊。的确,我也觉得,但实践证明,没有这几句,光靠html tag不行。
所以当action会返回页面时,有以下这两种情况:
a,返回的页面没有写上上面的禁止cache的语句(或者只写了html tag)。IE存储的是URL link + page result(cache eabled)。这也就是导致了之前为什么还会有cache的原因
b,返回的页面写上了禁止cache语句。IE存储的是URL link + page result(cache disabled)。这样才能够实现到我们想要的目的。每次都会真正的发出request。
总结:页面缓存没有统一的解决方法,要具体问题具体分析.
分享到:
相关推荐
以下是一些常用的JSP缓存清除策略: 1. **设置响应头**:通过设置`response.setHeader()`方法,可以控制HTTP响应头,从而控制浏览器的缓存行为。例如,设置`Pragma`、`Cache-Control`和`Expires`头字段可以告诉...
本文将详细介绍几种JSP中清除页面缓存的常见方法。 一、清除页面缓存 在JSP页面中,可以通过设置HTTP响应头来禁止浏览器缓存页面。以下代码片段展示了如何在JSP中实现这一目标: ```jsp response.setHeader(...
* JSP 页面缓存 cache 技术--扫瞄器缓存介绍及实现方法 * Js 代码中,ajax 恳求地址后加随机数防止扫瞄器缓存的缘由详解 * AngularJS 中$http 缓存以及处理多个$http 恳求的方法 * JS 实现前端缓存的方法
在这个实例中,可能包含了一系列使用Ajax调用JSP页面的例子。例如,用户在前端填写表单后,可以使用Ajax异步提交数据到JSP,JSP处理数据后再通过Ajax响应返回结果。这样可以避免页面的刷新,提高交互性。 4. **...
这些秘籍绝招涵盖了 JSP 页面的生命周期、Servlet 的 init() 方法、自动重载功能、HttpSession 的使用、页面输出压缩等方面。 秘籍一:在 Servlet 的 init() 方法中缓存数据 在 Servlet 的 init() 方法中缓存一些...
4. **JSP在服务器端的角色**:JSP页面可以处理来自Ajax请求的参数,执行必要的业务逻辑,然后返回响应数据。这可能包括数据库查询、计算或者其他复杂的服务器操作。 5. **响应处理**:在客户端,通过XMLHttpRequest...
**JSP与Ajax网站开发典型实例详解** 在Web开发领域,JSP(JavaServer Pages)和Ajax(Asynchronous JavaScript and XML)是两种重要的技术,它们共同构建了动态、交互式的网页应用。本实例将深入探讨如何结合使用这...
综上所述,解决"jsp页面加载时提示loading"的问题需要从多方面进行排查和优化,包括页面内容优化、服务器性能提升、网络条件改善、代码错误检查、缓存策略调整、服务器配置优化、数据库性能优化、AJAX请求优化、...
在这个案例中,“jsp+ajax 动态树”指的是利用JavaServer Pages (JSP) 和 Asynchronous JavaScript and XML (AJAX) 技术来创建一个无需页面刷新即可更新的交互式树形视图。 **JSP(JavaServer Pages)**是Java平台...
这里的“ajax+jsp分页控件”是一种技术解决方案,它允许用户在不刷新整个页面的情况下实现数据的分页加载,提供了更加流畅的用户体验。这种控件通常具有美观的界面设计,可以无缝地整合到各种Web应用中。 **Ajax...
JSP是服务器端的技术,用于生成动态网页,而AJAX则是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页的技术。这种组合可以创建高效、响应迅速的用户界面,提供类似桌面应用的用户体验。 在描述中提到...
开发者可以在JSP页面中编写HTML、CSS以及嵌入的Java代码,通过`<jsp:include>`或`<jsp:forward>`标签与Servlet进行通信,实现数据的传递和页面的跳转。 【Servlet】:Servlet是Java的一个标准API,用于扩展服务器的...
通常使用JavaScript库(如jQuery)中的AJAX方法,通过XMLHttpRequest对象向服务器发送异步请求,接收响应后更新DOM树,从而局部刷新页面。 3. MySQL: MySQL是一个广泛使用的开源关系型数据库管理系统,具有高性能...
"一个基于Ajax和Java缓存的聊天室"这个标题揭示了该项目的核心技术栈,即使用Ajax进行实时通信,以及Java作为后端处理数据并实现缓存功能,构建了一个在线聊天平台。Ajax(Asynchronous JavaScript and XML)是一种...
总结来说,Servlet处理业务逻辑和数据库交互,JSP用于生成动态页面,而Ajax则实现了页面的无刷新更新,提高了用户体验。这个示例项目"Servlet+jsp+AJax的分页及增删改查"提供了一个学习和实践这些技术的平台,有助于...
5. **JSP后端**:在Java后端,你需要创建一个JSP页面或者Servlet来处理Ajax请求,查询数据库(如果数据存储在那里)并返回JSON或XML格式的子节点数据。 6. **响应处理**:在前端,接收到Ajax请求的响应后,解析JSON...
JSP(JavaServer Pages)与AJAX(Asynchronous JavaScript and XML)结合使用,可以实现无刷新的动态分页效果,使用户在浏览数据时无需等待整个页面重新加载。下面我们将详细讲解这个"JSP AJAX分页示例程序"中的关键...
- **性能优化**:减少不必要的Ajax请求,使用缓存策略,提高数据读取效率。 综上所述,"ajax无刷新聊天室源码--jsp版"涵盖了Ajax技术、JSP编程、Servlet交互、数据库操作等多个核心知识点,对于学习JavaWeb开发和...