日期:2014-05-17  浏览次数:20710 次

代理服务器缓存 导致网站串号
问题描述:

       如果使用了代理    A用户登录到网站,显示的是B用户  很崩溃

目前定位到是代理服务器缓存 问题   在不能动代理服务器的前提下,各位有碰到的是这么解决的

跪求各位大神指点!!!



目前处理:
  没用伪静态页面,也用了过滤器 

1. 这种方法也用了

response.setHeader( "Pragma ", "no-cache "); 
response.setHeader( "Cache-Control ", "no-cache "); 
response.setDateHeader( "Expires ",0); 

2. 也用了 

request.setAttribute("date",new Date());
req.setAttribute("random", Math.random());    


还是没什么作用
------最佳解决方案--------------------
这个比较麻烦,一般需要每个页面增加。
也就是浏览器发起向Action的请求时,该URL就已经需要有随机参数了。


而Action跳JSP这里呢,因为一般都是forward;也即过程完全在后台完成,跟浏览器无关,所以即便你增加了任何参数,对代理服务器也不造成任何影响。
------其他解决方案--------------------
方法2,是没啥意义的。

你说的代理服务器,是部署在服务器前的“反向代理服务”? 还是客户机用了某个代理服务器来共享上网?
------其他解决方案--------------------
引用:
方法2,是没啥意义的。

你说的代理服务器,是部署在服务器前的“反向代理服务”? 还是客户机用了某个代理服务器来共享上网?
  
客户机用了某个代理服务器来上网
------其他解决方案--------------------
后台是缓存用户登录状态的
------其他解决方案--------------------
引用:
客户机用了某个代理服务器来上网


这样的话,应该是代理服务器配置可能也有点问题,无视了HTTP关于不要缓存的建议信息。

如果确实如此又不能修改代理服务器,那么只能是每次页面切换时URL上要带随机数,类似: 
  ?rand=12312395926592369264923947283742


引用:
后台是缓存用户登录状态的

不知道你这个缓存用户登录状态是什么意思,如果你指的是session的话;只要jsessionid没有重复,本身session就绝对不会冲突的。跟你设置request.setAttribute没有任何关系,而且这种设置值,仅存在于档次请求处理过程中,更不会对代理服务器产生任何影响。
------其他解决方案--------------------
引用:
引用:
客户机用了某个代理服务器来上网

这样的话,应该是代理服务器配置可能也有点问题,无视了HTTP关于不要缓存的建议信息。

如果确实如此又不能修改代理服务器,那么只能是每次页面切换时URL上要带随机数,类似: 
  ?rand=12312395926592369264923947283742
引用:
后台是缓存用……


都是配置 action 跳转到jsp页面的   怎么在URL上带随机数  过滤器也无法办到

------其他解决方案--------------------


求方法,求方案
------其他解决方案--------------------
每个页面增加  只能这样处理了