`
zyn010101
  • 浏览: 325046 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

避免代理服务器的缓存带来的问题

    博客分类:
  • java
阅读更多

      最近客户反映用户登录系统的时候,用户资料会变成另外一个人的,经过排查,发现:用户的网络架构采用一个代理服务器,所有用户上网均通过该代理服务器访问,缓存问题造成了该问题,申请的url相同,代理就不会再去访问服务器,直接把缓存中的数据给返回到客户端,去网上搜了好多帖子,最后结合自己项目的实际情况,采用以下方案解决了该问题,在此记录下来和大家分享。

     新加一个过滤器,在过滤器的doFilter方法中加入以下代码:

 

public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		HttpServletRequest req = (HttpServletRequest)request;
	//	System.out.println(req.getRequestURI());
		req.setAttribute("date", new Date());
		req.setAttribute("random", Math.random());
		chain.doFilter(request, response);
	}

 

加入日期和随机数,

过滤器的url-pattern将需要过滤的url给配置上,界面上将特定的url后面加上这两个参数,用ognl表达式获取值

<script>
var navBarInfo = new Array();
<c:forEach items="${navList}" var="nav">
	<c:if test="${nav.fdType==1}">
		navBarInfo[navBarInfo.length] = "<c:out value="${nav.fdName}"/>|<c:url value="/sys/home/sys_home_nav/sysHomeNav.do?method=view&fdId=${nav.fdId}"/>
		|<c:out value="${nav.fdPicName}"/>";
		 
	</c:if>
	<c:if test="${nav.fdType==2}">
		navBarInfo[navBarInfo.length] = "<c:out value="${nav.fdName}"/>|<c:url value="${nav.fdUrl}?i=${random}&date=${date}"/>|<c:out value="${nav.fdPicName}"/>";
	</c:if>
</c:forEach>

</script>

 通过此url访问的数据全部恢复正常了。

2
1
分享到:
评论
3 楼 zyn010101 2012-01-12  
有很多地方还是需要这个缓存机制的,呵呵
2 楼 ywlqi 2012-01-12  
为啥不修改代理服务器设置?
1 楼 sang4608716 2012-01-12  
csdn就有这个bug

相关推荐

    服务器缓存设置 工具

    1. **HTTP 缓存**:这是最常见的缓存形式,通常包括浏览器缓存和代理服务器缓存。HTTP 协议提供了缓存控制头,如 `Cache-Control`、`ETag` 和 `Last-Modified`,用于管理缓存的有效性和更新。 2. **数据库缓存**:...

    详解大型网站web服务器缓存.zip

    在构建大型网站时,Web服务器缓存是一种至关重要的优化策略,它可以显著提高系统性能和响应速度,降低服务器负载。本文将深入探讨四种主要的缓存技术:CDN缓存、反向代理缓存、应用程序缓存和分布式缓存,以及讨论...

    缓存服务器

    1. **HTTP缓存**:常见的HTTP缓存服务器如代理服务器,它们在客户端和原始服务器之间起到中介作用,缓存HTTP响应以加速后续请求。 2. **CDN缓存**:内容分发网络通过在全球范围内的多个节点部署缓存服务器,将静态...

    Java写http代理服务器

    4. **线程安全和并发控制**:由于可能有多个客户端同时连接到代理服务器,所以需要确保代码的线程安全,避免并发问题。可以使用Java的`synchronized`关键字、`java.util.concurrent`包中的工具,如`ExecutorService`...

    网络游戏服务器架构研究(-)代理服务器的简单实践

    1. **负载均衡**:当大量玩家同时在线时,代理服务器可以分散玩家请求到不同的游戏服务器,避免单个服务器过载,确保游戏服务的稳定运行。 2. **缓存服务**:代理服务器可以缓存常用的游戏资源,如地图、角色模型等...

    vc编写的代理服务器程序

    6. **负载均衡**:在大型网络环境中,代理服务器可以分发客户端请求到不同的后端服务器,避免单个服务器过载,提高整体系统的稳定性和效率。 7. **日志记录**:代理服务器通常会记录所有的网络活动,包括请求和响应...

    lnux 本地构建缓存服务器

    在Linux环境中,构建一个本地缓存服务器是一种优化软件部署和更新效率的有效方法。...在客户端配置时,确保每个系统都能正确地通过缓存服务器获取更新,避免直接连接到外部网络,从而提高整个网络的效率和安全性。

    Java的HTTP代理服务器 Smart Cache

    当相同的请求再次到来时,代理服务器可以从缓存中直接读取数据,避免了重复的网络传输,从而提高了响应速度。 Smart Cache的缓存策略可能包括LRU(最近最少使用)或者LFU(最不经常使用)等,这些策略旨在最大化...

    代理服务器技术 pdf

    为了确保代理服务器的稳定性和安全性,建议将安装 MSPROXY 2.0 的服务器配置为独立(server-alone)服务器模式,并且必须有一个格式为 NTFS 的硬盘作为缓存空间。如果硬盘当前为 FAT 格式,可以通过命令提示符中的 `...

    Linux1-代理服务器--清除代理服务器上cache记录.doc

    以上两种方法都是为了确保Squid代理服务器的高效运行,通过定期清理缓存,可以避免因缓存积累过多导致的问题,提高服务器响应速度,同时也能保护用户隐私,因为代理服务器缓存可能会保存用户的访问记录。在执行这些...

    网络代理服务器的设计与实现

    代理服务器可以存储频繁访问的网页或对象,当客户端再次请求时,可以从缓存中直接返回,避免了重复的网络通信,降低了延迟,提高了响应速度。文中提到的自适应缓存置换策略,如基于LRU(最近最少使用)算法,可以...

    Java代理服务器程序

    对于外部资源,代理服务器可能需要将客户端的IP替换为自己的IP,以避免被目标服务器识别为潜在的安全风险。 代理服务器还可能涉及并发处理。由于可能有多个客户端同时请求,因此需要处理多线程问题。Java的并发库...

    VB源代码——代理服务器软件

    这不仅可以提高浏览速度,通过缓存重复请求,还可以实现一定程度的匿名性,因为原始客户端的IP地址被代理服务器的IP地址替代。 代理服务器还支持浏览带有图片和其他多媒体内容的网站,这意味着它能够处理多种类型的...

    用Linux架设代理服务器.pdf

    鉴于 Squid 是一个高性能的代理缓存服务器,我们在架设代理服务器时,选择 Squid 作为代理软件。 首先,需要安装 Squid 软件包,可以使用 rpm 或者 tarball 等方式安装。安装完成后,需要配置 Squid 的配置文件 ...

    代理服务器端口介绍代理服务器端口介绍.doc

    WWW代理服务器可以让用户通过一个统一的入口点访问多个网站,同时提供缓存功能,提高访问速度,降低网络带宽消耗。 除此之外,还有很多其他未列出的端口也可以被用作代理服务器,如443(HTTPS)、666、800、801、...

    代理服务器源码

    代理服务器是一种在网络中起中介作用的系统,它接收客户端的请求并转发到目标服务器,同时也可以缓存数据、提供安全过滤、访问控制等功能。在这个"代理服务器源码"中,我们主要关注的是如何实现一个HTTP代理服务器,...

    Squid代理服务器原理

    Squid代理服务器是一款广泛应用的开源HTTP代理缓存软件,其主要作用是提高网络访问速度,减少网络带宽消耗,并且能够实现访问控制和内容过滤等功能。在企业网络环境中,Squid通常作为网络访问的中介,帮助客户端处理...

    LAN局域网用户代理服务器设置方法.docx

    但是,需要注意代理服务器的缺点,并采取相应的措施以避免这些问题。 七、附加信息 最新代理服务器列表(2005.4.14 更新):...

    Linux下架设代理服务器.doc

    2. **私有IP访问Internet**:对于拥有有限公网IP的组织,代理服务器可以让内部网络的私有IP地址设备通过代理访问Internet,避免了每个设备都需要公有IP地址的问题。 3. **安全性提升**:代理服务器作为内外网络之间...

Global site tag (gtag.js) - Google Analytics