如何在javaservlet中通过javascript刷新图像

How to refresh an image through javascript in a java servlet

本文关键字:javascript 刷新 图像 javaservlet      更新时间:2023-09-26

刷新图像时遇到一些问题,我在后台运行了一个脚本来更新图像,我想每X秒显示一次新图像,但当我在浏览器中运行时,图像不会刷新
有人有什么想法吗

<!DOCTYPE html PUBLIC '"-//W3C//DTD HTML 4.01 Transitional//EN'" '"http://www.w3.org/TR/html4/loose.dtd'>
<html> 
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1'>
        <title> Title </title> 
        <script>
            var image;
            var imgBase="images/test.jpeg"
            function count(){
                image.src=imgBase;
            }
            function init(){
                image = document.getElementById("image");
                if( image ){
                    setInterval("count()",1000);
                }
            }
            window.onload = init;
        </script>
    </head>
    <body>
        <img src="images/test.jpeg" id="image">
    </body>
</html>

web应用程序具有以下目录树。。

.
├── Home.jsp
├── images
│   ├── test.jpeg
├── META-INF
│   └── MANIFEST.MF
├── style.css
└── WEB-INF
    ├── classes
    │   └── test
    │       └── my
    │           └── new
    │               └── package
    │                   └── Test.class
    ├── lib
    └── web.xml
    9 directories, 10 files

Web控制台在检索图像时不会显示任何错误,但不会刷新
[00:53:15.896] GET http://host:8085/Servlet/Display?config=L1 [HTTP/1.1 200 OK 2ms]
[00:53:16.419] GET http://host:8085/Servlet/images/test.jpeg [HTTP/1.1 200 OK 2ms]

感谢您的帮助,谢谢!

浏览器显示浏览器缓存中的图像。

一种解决方法是使用唯一的请求参数(例如时间戳)请求图像,这样浏览器就被迫实际发送一个新的HTTP请求,而不是显示浏览器缓存中的图像。

function count(){
    image.src = imgBase + "?" + new Date().getTime();
}

请注意,这个具体问题与servlet无关。更糟糕的是,将HTML代码直接放在servlet类中是一种糟糕的做法。HTML代码属于JSP文件(Java代码属于servlet类)。