验证码是以流的形式将随机生成的数字些到图片里,然后JSP页面再加载此图片。
可是每次点击刷新后,图片内容重写了,但页面显示的图片却不变。
起初认为是页面的缓存,所有在页面的头加了
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate"/>
<meta http-equiv="Expires" content="0"/> 
可还是不起作用,重启服务也一样,请各位帮忙。
实在崩溃。

解决方案 »

  1.   

    用的IE吗?
    LZ有没有尝试过清除掉IE的保存文件?
      

  2.   

    每次刷新,都会将随机生成的四位数字写到这个图片,比如:当前图片的内容是1234,刷新后,这个图片的内容就可能是2345。那么JSP页面显示的图片的内容就应该是2345,可现在显示的还是一开始进入页面时候的内容。
    这样明白否?
      

  3.   

    我用的是IE7,IE8也试过,包括360和火狐,都不行。
    IE的保存文件指的的什么?
      

  4.   

    应该是图片地址被缓存了,每次生成新的图片,换一下图片地址。
    不过JSP中生成的图片,不知道有没有地址。
      

  5.   

    可以考虑看一下你生成图片的那个servlet是否出错了。
      

  6.   

    工具-INTERNET选项-INTERNET临时文件-删除文件不过火狐都不行的话。。
    那就不好说了。LZ可以尝试在生成图片的地址后面加上一个无用的参数,值为随机数。
      

  7.   

    servlet正确。
    刷新之后,查看此图片是正确的。
      

  8.   

    <img id="validatecode" src="/servlet/validatecode.jpg" onclick="change();"/>
    <script>
    function(){
       $("#validatecode").attr("src","/servlet/validatecode.jpg"+new Date());
    }
    </script>
      

  9.   

    IE缓存是很恶心的,可以使用js或java代码在引用验证码的jsp后面加上一个随机参数即可。
    <img src="validate.jsp" onclick="reloadImg(this);">
    function reloadImg(obj){
        obj.src="validate.jsp?param="+Math.random();
    }
      

  10.   


    $("#validatecode").attr("src","/servlet/validatecode.jpg?time="+new Date());
      

  11.   

    怪不得,在图片后缀名前加上生成图片的时间就好了,如
    abc_123423546.jpg,
    这样每次的图片地址都不一样,就不会受缓存的影响了。
      

  12.   

    location.href="./index.jsp?fresh=<%=new Date().getTime()%>";
    我是这样加的,之前就加了。
    不好使。
      

  13.   

    用完就删除,把最后一次图片的地址放在cookie里,还有就是要定时清除图片的临时文件夹。
    否则浏览器是一定会缓存的,你的目的不可能达到。即使这样,你生成的那些图片,一样得自己去删除掉。
      

  14.   

    JSP引用代码:
    <a href="JavaScript:reloadImage();" title="点击刷新图片"><img src="../images/ValidateCode/ValidateCode.jpg" width="50" height="17" /></a>JS代码:
    function reloadImage(){ 
    location.href="./index.jsp?fresh=<%=new Date().getTime()%>"; document.form1.identify.value="";
    document.form1.identify.focus();
      

  15.   

    你这代码,每次刷新图片都得刷新网页?为什么不用DOM中Image的load方法加载图片?
    function reloadImage(){  
    location.href="./index.jsp?fresh=<%=new Date().getTime()%>"; document.form1.identify.value="";
    document.form1.identify.focus();
    }
      

  16.   

    你这代码,每次刷新图片都得刷新网页?为什么不用DOM中Image的load方法加载图片
      

  17.   

    这个是CSDN登陆时生成验证码的内容,你参考一下吧。
    <img id="MzImgExpPwd" src="http://c.csdn.net/bbs/f/i/blank.gif" alt="" />document.getElementById('MzImgExpPwd').src = 'ShowExPwd.aspx?temp=' + (new Date().getTime().toString(36));不是刷新整个页面,只是刷新图片