氟塑料离心泵www.buybeng.com

jquery教程http://www.software8.co/wzjs/jquery/

关于servlet的缓存问题

今天,在用Servlet做注销控制时,遇到一个很奇怪的问题,就是该Servlet不能正常注销登陆。经过测试发现,该servlet根本就没有被访问。开始还以为是web.xml的配置问题,或是我tomcat的配置问题,导致它没有指向正确的Servlet。可无论如何修改配置,都无济于事。
    在朋友提醒下,可能是缓存的问题,但是如果是缓存问题,为什么只有这个Servlet有这个问题,而其他的没有呢?抱着试一试的态度,我在跳转到该URL里加入了一个随机参数,这次该Servlet可以正常注销了。问题虽然解决了,可原因却还没找到。
    为了测试Servlet究竟会在什么情况下存在缓存问题,我开始做测试。首先新建一个Servlet,然后在它的doGet方法里,添加打印随机值的语句。结果每次运行,它都能输出不同的值,并没有缓存问题。我就猜想,会不会是访问方式的问题,我每次测试都是在地址栏直接输入然后敲回车的,这其实已经带着刷新的效果了。于是我又新建了一个页面,用一个超链指向该页面。重新测试,发现仍然每次输出。
    问题到这一步似乎僵住了,然后认真分析出问题的servlet与测试所用的Servlet有什么不同。突然想起,出问题的Servlet并不输出页面,而是会跳转到一个静态的html页面。会不会是浏览器因为它返回来的是一个静态页面,浏览器认为没必要去访问服务器,所以才缓存的呢?再次尝试,将测试Servlet改为跳转到另一个html的页面的功能。测试,这次问题出现了,在大部分情况下,都没有再输出随机值,说明服务端的Servlet并没有被访问。同时尝试让它跳转到一个jsp页面,发现如此的话,该Servlet仍然会被每次访问。看来,缓存问题主要还是出现于Servlet向普通的html页面跳转中。
    问题解决了,原因也差不多搞明白了,这里还剩下最后一个问题。就是在测试Servlet中,缓存问题值存在于第二次以后,但问题Servlet的缓存问题在第一次访问也存在。另外测试Servlet的访问次数也要多与问题Servlet。这个问题留待以后再去想明白吧。

posted on 2012-10-04 11:18 你爸是李刚 阅读(1240) 评论(2)  编辑  收藏

评论

# re: 关于servlet的缓存问题 2012-10-05 00:57 捏造的信仰

注销的 Servlet 中建议加上禁止客户端缓存的语句,或者使用 POST 提交。  回复  更多评论   

# re: 关于servlet的缓存问题 2012-10-11 21:43 kaiba

问题跟servlet没有关系,在于浏览器缓存的原因。
对于get请求,浏览器会进行缓存,可考虑转为post请求。
活着在get后面加上?x=???随机数这样,来防止浏览器请求  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2012年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

导航

统计

常用链接

留言簿

随笔档案

文章档案

技术网站

行业网站

搜索

最新评论

阅读排行榜

评论排行榜

站长网 氟塑料离心泵 注塑机 液晶广告机