JSP解决缓存问题



JSP解决缓存问题

有关JSP缓存问题.这个问题上网找了好多.其实解答都是差不多的,就是如何设置让其缓存清空或者是不使用缓存.这里不管是什么缓存.当然.都可以用下面的方法来解决.图片也好.页面也好.只是地方放对了.下面慢慢分析.

[java] view plaincopy
<%
response.setHeader(“Pragma”,”No-cache”);
response.setHeader(“Cache-Control”,”no-cache”);
response.setDateHeader(“Expires”, 0);
%>

 

第一:就来说说如何清空缓存吧,其实方法大家都知道.无非就是

[c-sharp] view plaincopy
response.setHeader(“Pragma”, “No-cache”);
response.setHeader(“Cache-Control”, “no-cache”);
response.setDateHeader(“Expires”, 0);
.....

之类的.这里为什么很多人都说不行呢?原因就是你放错地方了,刚开始我也不知道为什么会出现这样的问题,到后来终于放对了地方之后,才知道原来是放错了地方.很多人说放到JSP下面,其实这里要分情况的,如果你是纯页面,肯定不会出现问题,但是要是有引用到其他的地方呢?比如像我这样,图是画出来的,但是画图的地方又是用到了其他的变量.这个时候就出现了问题,在这个画图之前,清空缓存吧.比如我这里用的writeResponse(response, list, title);来画图,就在这个之前调用上面三个方法.问题解决,OK了.


 

第二:就是不用到缓存,这个其实就是在你调用的时候,用随机数来给它套个参数,这样也不会产生相同页面不断出现,(相同的连续出现几率可想而知,哈哈,中了就恭喜了.)
比如,调用图片的时候.

[c-sharp] view plaincopy
<img src=”../../uppic/a.jpg” mce_src=”uppic/a.jpg”+”?temp=”+<%=Math.random()%>/>

后面的这个参数就是加上去的,所以不会出现问题,

 

其实只要找准问题的地方,网上的解答基本可以解决问题,为什么就是解决不了?因为你没有找准你的地方所在,问题是找到了,解决问题的根源没有找对.