- 浏览: 1340710 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (453)
- Struts2 (4)
- Struts1 (16)
- Spring (9)
- Hibernate (5)
- AJAX (16)
- MS Server (9)
- Oracle (35)
- 测试技术 (5)
- 其他 (37)
- JSF (1)
- EJB (5)
- ASP.NET (9)
- iBATIS (5)
- Struts Spring Hibernate (2)
- HTML (12)
- Eclipse使用 (5)
- 设计模式 (5)
- JSP (32)
- 正则表达式 (2)
- 服务器 (12)
- Java基础 (48)
- MySQL (4)
- 面试 (22)
- UML (1)
- 数据结构 (3)
- Ant (2)
- 规范 (4)
- JavaScript (29)
- 软件使用及技巧 (25)
- PHP (1)
- DWR (3)
- FreeMarker (1)
- ExtJs (17)
- JFreeChart (9)
- Reports (2)
- JavaException (1)
- Java Mail (1)
- Flex (9)
- 异常 (12)
- Log4j (2)
- WebService (1)
- jQuery (1)
- Sybase (2)
- myeclipse_plugin (2)
- Linux (5)
- jbpm (2)
- SCM (1)
- mongoDB (1)
最新评论
-
lihua2008love:
<typeAlias alias="User& ...
IBATIS简单操作 -
lihua2008love:
...
关于项目框架设计的一点学习 -
c_jinglin:
我使用<OBJECT CLASSID="cls ...
这就是个静态页面通过js控制mscomm对某com设备进行访问的例子. -
zlbjava:
赞,用了还不错
java获取请求的ip地址,并解析ip所属地区 -
完美天龙:
cs842813290 写道楼主,我明白的地方:在链表已有N个 ...
JAVA实现双向链表
控制 Web 缓存
假设两个并发用户(用户 A 和用户 B)正试图使用基于 Web 的界面更新同一段数据。 假定用户 A 首先提交了更改的信息,随后应用程序将此信息存储到数据库中。 此时,用户 B 很有可能在他的 Web 浏览器中看到的是陈旧数据,且对此数据的更改可能覆盖用户 A 所做的修改。即使应用程序禁止并发用户访问同一数据,但如果用户单击浏览器的“后退”按钮,某个用户仍然可以看到陈旧内容。 如果应用程序开发人员忽略这些问题,它们可能导致信息不一致或数据丢失。
在以下各部分中,我概述了几个确保所提供内容的新鲜性的策略,从而避免出现陈旧数据问题。
使用 No-Cache 头部 为了尽量减少网络通信量,Web 浏览器和代理必须缓存静态页面、JavaScript、CSS 文件和像。 而缓存动态内容可能产生不良的负面影响,尤其是当 Web 窗体包含从数据库中提取的数据时。
幸运的是,使用分别由 HTTP/1.0 和 HTTP/1.1 标准定义的“Pragma:no-cache”和“Cache-Control:no-cache”头部可以很方便地禁用 HTTP 缓存。 例如,可以使用一个简单的过滤器设置这两个头部:
可以在应用程序的 web.xml 文件中为所有 JSP 页面、JSP 页面的子集或只为使用 JSF 和 ADF Faces 的网页配置此过滤器,如以下示例演示:
可以根据在应用程序中更新数据的方式修改此过滤器以设置其他 Cache-Control 头部以及 Age、Date、Expires 和 Last-Modified。 有关这些头部的更多详细信息,请参阅 HTTP 规范。
假设两个并发用户(用户 A 和用户 B)正试图使用基于 Web 的界面更新同一段数据。 假定用户 A 首先提交了更改的信息,随后应用程序将此信息存储到数据库中。 此时,用户 B 很有可能在他的 Web 浏览器中看到的是陈旧数据,且对此数据的更改可能覆盖用户 A 所做的修改。即使应用程序禁止并发用户访问同一数据,但如果用户单击浏览器的“后退”按钮,某个用户仍然可以看到陈旧内容。 如果应用程序开发人员忽略这些问题,它们可能导致信息不一致或数据丢失。
在以下各部分中,我概述了几个确保所提供内容的新鲜性的策略,从而避免出现陈旧数据问题。
使用 No-Cache 头部 为了尽量减少网络通信量,Web 浏览器和代理必须缓存静态页面、JavaScript、CSS 文件和像。 而缓存动态内容可能产生不良的负面影响,尤其是当 Web 窗体包含从数据库中提取的数据时。
幸运的是,使用分别由 HTTP/1.0 和 HTTP/1.1 标准定义的“Pragma:no-cache”和“Cache-Control:no-cache”头部可以很方便地禁用 HTTP 缓存。 例如,可以使用一个简单的过滤器设置这两个头部:
package caches; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class NoCacheFilter implements Filter { private FilterConfig config; public void init(FilterConfig config) throws ServletException { this.config = config; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse httpResponse = (HttpServletResponse) response; httpResponse.addHeader("Pragma", "no-cache"); httpResponse.addHeader("Cache-Control", "no-cache"); chain.doFilter(request, response); } public void destroy() { } }
可以在应用程序的 web.xml 文件中为所有 JSP 页面、JSP 页面的子集或只为使用 JSF 和 ADF Faces 的网页配置此过滤器,如以下示例演示:
<filter> <filter-name>NoCacheFilter</filter-name> <filter-class>caches.NoCacheFilter</filter-class> </filter> <filter-mapping> <filter-name>NoCacheFilter</filter-name> <servlet-name>FacesServlet</servlet-name> </filter-mapping>
可以根据在应用程序中更新数据的方式修改此过滤器以设置其他 Cache-Control 头部以及 Age、Date、Expires 和 Last-Modified。 有关这些头部的更多详细信息,请参阅 HTTP 规范。
发表评论
-
Web开发通用监控类解决方案(代码零侵入性)
2009-07-01 14:00 1173我们开发网站的过程中,经常会碰到这种情况,当调用某个类中函数的 ... -
java获取请求的ip地址,并解析ip所属地区
2009-06-01 09:05 9039每次看见QQ上面能够显示对方的ip和地址让人觉得舒服。。刚刚无 ... -
jsp是上传图片加水印
2009-05-05 14:46 1501参考附件. -
JSP 中路径相关的常用解决办法
2009-04-22 15:58 1897<%@ page language="ja ... -
Jsp页面弹出输入对话框的实现收藏
2009-01-16 16:48 3952在写JSP页面的时候,有时需要点击一个按钮弹出一个输入对话框, ... -
log4j xml配置详解
2008-12-30 08:07 15532<?xml version="1.0" ... -
一个关于java.net.Socket的超时的问题
2008-12-26 10:44 4997从异常信息中,可以看到是read timed out,应该是S ... -
防止刷新带来的重复提交
2008-10-08 14:17 1503------------------------------- ... -
防止盗链
2008-09-04 22:28 1508<%=request.getHeader("R ... -
ip 验证
2008-08-31 23:38 1202if(kk_BlacklistVehicle_UserEnro ... -
用户登陆 封装
2008-08-31 23:37 1166首先要有一个封装类,我用UserInfo package d ... -
加密算法SHA-1,SHA-256,SHA-512,MD2,MD5
2008-08-31 23:33 6153自定义某种算法 package test; ... -
Java 调用 Oracle 存储过程返回结果集
2008-08-12 08:16 2562Oracle 存储过程返回结果集用 ref cursor 实现 ... -
分页技术
2008-07-19 11:33 1389在使用数据库的过程中,不可避免的需要使用到分页的功能,可是JD ... -
对分页的封装
2008-07-16 19:59 1859package com.bjsxt.oa.web; im ... -
Pagger-taglib分页
2008-07-16 17:57 1402<%@ page language="java ... -
JavaScirpt和JSP数据数据交互使用问题
2008-07-03 21:53 1473一、页面中的JavaScript的数据如何提交给后台的jsp程 ... -
用Cookie实现的购物车
2008-07-02 23:17 8284Cusorderitem.java 封装了相关的商品购买信息 ... -
Servlet中文API文档
2008-06-30 14:08 4126基本类和接口 一、javax. ... -
JSP tag 学习
2008-05-19 20:16 2723在JSP2.0 中,对于自定义的标签有两种实现方法,实现接口或 ...
相关推荐
这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见,某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文,后面参考...
CandyWebCache是移动端web资源的本地缓存解决方案,能够拦截webview的请求,并优先使用本地缓存静态资源进行响应,以此来对webview加载页面性能进行优化。 特点: 协议层拦截请求,透明替换响应 静态资源版本控制及...
Web缓存在互联网上最容易被误解的技术之一:网站管理员经常怕对网站失去控制,由于代理缓存会“隐藏”他们的用户,让他们感觉难以监控谁在使用他们的网站。 是一篇知识性的文档,主要目的是为了让Web缓存相关概念...
Android WebView 缓存详解 一. 两种缓存类型: 页面缓存:加载一个网页时的html、JS、...数据缓存:分为AppCache和DOM Storage两种 我们开发者可以自行控制的就是这些缓存资源 AppCache: 我们能够有选择的缓冲web
通过winform使用httpclient客户端调用webApi接口,api使用oauth2.0权限控制,调用接口需要进行token获取认证、
布模式的分布式缓存,复制缓存和分布式缓存,采用JGroups 技术实现集群内节点间的通信及数据迁移,通过可靠性服务模块控制完成整个系统的数据冗余备份和失败恢复功能。经测 试,本文设计的分布式数据缓存系统提供了...
Internet Security and Acceleration (ISA) Server 2004 是可扩展的企业防火墙以及构建在 Microsoft Windows Server™ 2003 和 Windows® 2000 Server 操作系统安全、管理和目录上的 Web 缓存服务器,以实现基于策略...
设计一个简单的IP地址过滤器,根据用户的IP地址进行网站的访问控制。例如:禁止IP地址处在192.168.2网段的用户对网站的访问。 3、Listener的理解和应用 通过监听器记录在线用户的姓名,在页面进行用户姓名的显示,...
完整版Java web开发教程PPT课件 Java开发进阶教程 第02章 Dom模型,控制客户端元素(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第03章 表单验证,常用函数(共15页).pptx 完整版Java web开发...
Web应用中的图像处理是非常重要的,Java使用Applet扩展了标签,让程序要可程序控制图像的显示,这给实际开B/S应用带来多一种图像技术,该例子演示了图像处理的双缓存技术处理图像抖动的问题。双缓存技术是Java完成...
6. 灵活的文件刷新控制,包括cookie驱动控制、URL触发缓存更新控制、响应驱动 缓存终止(header驱动缓存终止)等功能,让aiCache同步更新一个整体页面或 一个网页元素。 7. 可作为HTTPS终点,把解密的流量发送给原始...
Web.UI 2007.1 版本没有进行整体框架的改变,只是在Web.UI 2006.2的基础上进行了改进,所以通过最新的ComponentArt.Web.UI.dll可以很方便的对之前的应用程序进行编译。 ComponentArt Web.UI是全球知名的ASP.NET...
内容缓存是Web应用中最普通的优化技术之一,例如,可以使用一个自定义地jsp标签——我们将之命名为——由和将每一个需要被缓存的页面片段封装起来。任何自定义标签可以控制它所包含部分 (也即预先封装的页面片段)在...
通过利用WWW访问的空间局部性,Web预取使缓存机制从时间局部性向空间局部性扩展.归纳了Web预取技术的分类,概括和比较了不同类别的优势和局限性,给出了预取模型的基本框架及每部分的主要功能,并对各种评价标准进行了...
完整版Java web开发教程PPT课件 Java开发进阶教程 第02章 Dom模型,控制客户端元素(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第03章 表单验证,常用函数(共15页).pptx 完整版Java web开发...
响应缓存还减少了web服务器生成响应所需的工作量。响应缓存由Http请求中的header控制。 而ASP.NET Core对其都有相应的实现,并不需要了解里面的工作细节,即可对其进行良好的控制。 了解Http缓存 Http协议中定义了...
基于反馈控制理论,通过系统辨识设计了缓存控制器。动态调整不同类别缓存对象的缓存空间,可保证高优先级Web对象的高命中率,而不同类别的Web对象命中率之比保持不变。在服务器端实现了基于比例命中率的缓存区分服务...
JavaScript ServiceWorker API的好处就是让web开发人员轻松的控制缓存。虽然使用ETags等技术也是一种控制缓存的技术,按使用JavaScript让程序来控制缓存功能更强大,更自由。当然,强大有强大的好处,也有弊处——你...
Squid是Web的缓存代理,支持HTTP,HTTPS,FTP等。 通过缓存和重用经常请求的网页,它减少了带宽并缩短了响应时间。 Squid具有广泛的访问控制,是一个出色的服务器加速器。 它可以在大多数可用的操作系统(包括...
当你的web站点采用asp技术建立的初期,可能感觉到的是 asp动态网页技术带来的便利性,以及随意修改性、自如的http控制。但是,随着访问量的增加,你一定会发现自己的站点访问速度越来越慢,IIS重新启动得越来越...