IE、Navigate之类的Browser在客户端对图片会进行cache。因此,如果对于相同文件名、不同文件内容的图片,是不会重新下载,只是重复使用本地cache的。具体处理,可以在该JSP中使用 HTML Tag, 禁止本地cache。

解决方案 »

  1.   

    本地浏览器的缓存或把jsp的编译文件删除,重新执行编译就好了。
    在webinfo/目录下有jsp的编译文件
      

  2.   

    maolu:请问禁用CATCH的TAG是什么,属于哪个标签,请举个例子如何?
    on1no:用户不可能每次都删除文件吧!
      

  3.   

    <meta http-equiv='Expires' content='-10'>
    <meta http-equiv='Pragma'  content='No-cache'>
    <meta http-equiv='Cache-Control', 'private'>
      

  4.   

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

  5.   

    好象没有什么用啊!
    我用的是IE5,好象只有IE3以前的版本才可以!
    有没有别的好办法啊
      

  6.   

    在后台System.out.println(imageFile) 将imageFile打印出来,如果imageFile的值变了而IE中的图片没变,那么是IE的cache问题;如果imageFile的值跟IE中的图片URL一致,那么是你程序的问题.
      

  7.   

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

  8.   

    这是我做的一个测试程序,图片动态生成是没问题的。你只需把图片的url换掉就可以了。
    <html>
    <head><title>Very Simple JSP</title></head>
    <body>
    <form name=myform action=very_simple.jsp method=post>
    <h1>Very Simple JSP</h1>
    <% 
    String n = request.getParameter("n");
    if(n==null){
    n = "1";
    }
    String imageFile="http://127.0.0.1/p-"+n+".gif"; 
    %>
    <img src=<%=imageFile%>  hspace=100>
    <input type=text name=n value=1>
    <input type=submit name=submit value=submit>
    </form>
    </body>
    </html>
      

  9.   

    Joeblackyang(野Heart),您提供的代码并不能解决问题
    如果直接用浏览器"转到"按纽发出对JSP文件的请求,画面毫无疑问是会更新的,现在是由表单发出请求到servlet ,再由servlet返回jsp,
    对于您提供的例子,当图片发生变化,按submit按纽,显示的还是老图片!