java - 使用 servlet 加载的图像始终显示红十字

标签 java html servlets

我使用以下代码在临时位置创建文件并在该位置保存图像,加载此页面时,如果旧图像被删除或始终不显示缓存图像,我总是会看到一个红叉“最新图像”。

 String file_suffix=df.format(new Date());
            File file= new File("/home/martini/Apache/tomcat/apache-tomcat-5.5.27/webapps/dashboard/tmp_imgs/tmp"+file_suffix +".jpeg");
            if(!(file.exists())){
                file.createNewFile();
            }
             p_resp.setContentType("image/jpeg");
                chart = u.genarateLineChart(m_martiniInstance);
                ChartUtilities.saveChartAsJPEG(file, chart, 625, 800);

                HTMLHelper.writeHTMLHead(m_out);
                 m_out.println("<body bgcolor=\"#B4A383\"> "
                            + "  <center> "
                            + "  <img src=\"/dashboard/_imgs/sungard_martini.png\" alt=\"SunGard Martini\" border=\"0\" /> "
                            + "  <p><br><br></p>");
                    m_out.println(
                             "  <div align=center>"
                            + "  <img src=\"/dashboard/tmp_imgs/tmp" + file_suffix + ".jpeg\" border=\"0\" /> "
                            +"</div>"
                            + "  <p><br><br></p>");

我希望每次都为图像创建一个新文件,并将新图像加载到临时文件中,而不管临时文件中是否存在先前的图像。 有什么方法可以实现这一点,因为当我看到红十字或旧文件时,我刷新页面,然后看到正在加载的新图像。

谢谢

巴维亚

最佳答案

尝试在 servlet 的 doPost()/doGet() 方法的开头调用 response.setHeader("Cache-Control","no-cache"); 。这应该可以防止缓存。

另一个技巧是在 URL 末尾添加某种虚拟参数。这可以在客户端使用 javascript 来实现。例如,您的网址如下所示:

http://myserver/myapp/images/myimage.jpg

修改为

http://myserver/myapp/images/myimage.jpg?dummy=123456

虚拟参数的值可以是时间戳(以毫秒为单位)或随机数等。

关于java - 使用 servlet 加载的图像始终显示红十字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6676163/

相关文章:

java - 找到并单击按钮 Java Robot

java - 构建 yocto 图像时出现元 java 错误

java - 如何将代理与优先级范围关联 Anylogic

java - EJB 警告 : WELD-000411: . .. 考虑使用 @WithAnnotations 或具有边界的通用类型来限制事件

java - 一个普通的 servlet 可以被配置为一个 seam 组件吗?

java - 为 SSL API 调用配置 CA 证书

html - IE10+ 中的条件注释来处理缺少文本渲染声明

jquery - 如何更改 &lt;input type=Date> 的特定日期的颜色?

javascript - 如何在python-selenium中获取html元素的 'value'?

javascript - 如何在 Spring MVC 中自动生成唯一 ID 号