Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSP Javascript,更新java对象值_Javascript_Java_Jsp - Fatal编程技术网

JSP Javascript,更新java对象值

JSP Javascript,更新java对象值,javascript,java,jsp,Javascript,Java,Jsp,我目前正试图用Javascript获取Java对象的活动值,以填充一些进度条 以下是JSP文件中的代码: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import="server_ihm_web.server"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0

我目前正试图用Javascript获取Java对象的活动值,以填充一些进度条

以下是JSP文件中的代码:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="server_ihm_web.server"%>
<!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>Insert title here</title>
</head>
<style>
#myProgress {
width: 100%;
background-color: #ddd;
}

#myBar1 {
width: 1%;
height: 30px;
background-color: #4CAF50;
}

#myBar2 {
width: 1%;
height: 30px;
background-color: #4CAF50;
}

#myBar3 {
width: 1%;
height: 30px;
background-color: #4CAF50;
}
</style>
<body>

<h1>JavaScript Progress Bar</h1>

<div id="myProgress">
    <div id="myBar1"></div>
</div>
<br>
<div id="myProgress">
    <div id="myBar2"></div>
</div>
<br>
<div id="myProgress">
    <div id="myBar3"></div>
</div>
<%
    server serv = new server();
    serv.startServer();
%>
</body>
<button onclick="move()">Click Me</button>

<script>
function move() {

    var elem = document.getElementById("myBar1");
    var elem2 = document.getElementById("myBar2");
    var elem3 = document.getElementById("myBar3");

    var id = setInterval(update, 100);

    function update() {
        elem.style.width = <%=serv.getBar1()%> + '%';
        elem2.style.width = <%=serv.getBar2()%> + '%';
        elem3.style.width = <%=serv.getBar3()%> + '%';
    }
}
</script>
</html>
serv值每隔几秒钟更新一次,但进度条没有任何更改

我认为它总是采用对象的基本值,因此每次调用更新时,它都会将进度条更改为相同的值


有没有一种方法可以更新javascript的serv值?

我认为您正在混合存在于不同维度上的内容:

Javascript在浏览器中执行,JAVA JSP在服务器上执行

如果您的想法是让jsp scriptlet在用户的浏览器中执行,那么这是不会发生的

如果您需要在页面已经在用户浏览器中时使用进度更新页面,则必须实现一些ajax调用以在后台获取更新。

在页面第一次在浏览器中显示之前,在服务器中评估JSP标记。因此,该标记的值是静态的,并且在每次执行javascript函数时不会改变


要更改该值,需要向服务器发出请求,然后重新加载页面。为了避免每次重新加载整个页面,您需要执行一个Ajax请求以获得一个新的值,以便用Javascript显示。

这个问题和这个相同的答案经常出现,我觉得我们需要一个众所周知的问题和答案来将这些新问题和答案标记为重复。