zoukankan      html  css  js  c++  java
  • jsp页面img通过src指向controller方法获取的图片没有更新

    前台jsp页面添加一个img标签,然后src指向一个控制器的方法来获取图片

    <img id="mutationImage" style="height: 100px; 100px;" src="${pageContext.request.contextPath}/b065/getImg?imgPath=${plugin.equipment_img1}" />

    后台代码

    @RequestMapping("getImg")
    public void getImg(String imgPath,HttpServletRequest request,HttpServletResponse response){
      try {
        log.info("54 [B065] imgPath: "+imgPath);
        log.info("54 [B065] img read start ");
        File f=new File(imgPath);
        if (f.exists()) {
          InputStream is = new FileInputStream(f);
          int i = is.available(); // 得到文件大小
          byte[] buffer = new byte[i];
          s.read(buffer); // 读数据
          is.close();
          response.setContentType("image/*"); // 设置返回的文件类型
          OutputStream toClient = response.getOutputStream(); // 得到向客户端输出二进制数据的对象
          toClient.write(buffer); // 输出数据
          toClient.close();
          log.info("54 [B065] img read end ");
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
    }

    这样写基本实现了我们想要的功能,但是问题来了,当我们通过修改功能,修改了后台服务器上的图片的时候,我们前台的jsp图片并没有刷新

    而还是原来的图片,这是什么问题呢,因为这是浏览器缓存干的,那怎么解决呢?

    只需要一个js函数就可以了。Math.random

    <img id="mutationImage" style="height: 250px; 300px;"src="/b065/getImg?imgPath=${plbean.equipment_img3}&check="+Math.random() />

    原来的src是固定不变的浏览器加载还是以前的图片,也不会执行controller方法去加载图片,我们加一个随机数后,这样每次的url都不一样,

    那么原来图片不刷新的问题就解决了

  • 相关阅读:
    不要自称为程序员(转)
    JSON数据格式
    netstat
    win7,ubuntu双系统——重装win7后如何恢复ubuntu引导
    js中setInterval与setTimeout用法
    使用CSS中margin和padding的基础和注意事项
    HTTP协议与HTML表单(再谈GET与POST的区别)
    (转)JAVA AJAX教程第四章—AJAX和MVC的简单结合
    (转)JAVA AJAX教程第三章—AJAX详细讲解
    制作SD卡启动自己编译的uboot.bin
  • 原文地址:https://www.cnblogs.com/kxdq/p/7998227.html
Copyright © 2011-2022 走看看