繁体   English   中英

每两秒钟在JSP中重新加载Java方法

[英]Reload java method in JSP after every two seconds

我在一个类中有一个Java方法,我想每2秒在JSP中调用此方法。 另外,要将此方法返回的值保存到JSP中的变量。

valuepass.java

package docker;
public class valuepass{
    public static int value=0;
    public static int count(){
        if ( value >= 99 ){
            System.out.println(value);
            return value; //or throw exception, whatever
        }
        else{
             System.out.println(value);
             return value++;
        }
    }
}

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.* , java.io.*" pageEncoding="UTF-8"%>
<%@page import="docker.*"%>
<html>
<head>
<script type="text/javascript" src="JS/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
     var auto = setInterval(    function ()
     {
          <%= valuepass.count() %>;
     }, 2000); // refresh every 2000 milliseconds
</script>
</head>

<body>
<center>
<font face="verdana" size="4px">
Auto Reload Part Of Webpage Every 2 Seconds In Java-Jsp-jQuery
</font><br><br>
   <img src="images/java4s.png"><br><br>
   <div id="score"></div>
</center>
</body>
</html>

但是index.jsp每次都会返回相同的值,但是在Java代码中,我会在每次调用时递增该值。

我得到的输出是0,并且每次重载页面时都会给出递增的值,例如1、2、3 ......

我想要的是0123456789 ...

我认为我在scriptlet中调用valuepass.count有一些问题

另外,我将valuepass.count返回的值存储在变量中,以便可以在JSP中使用它。

在java类中,使用session.setAttribute("value",countValue); 其中countValue的初始值为0,它是调用java方法时加载的值。 会话将具有价值。 因此,如果再次调用该方法,请使用String countValue = session.getAttribute("value"); 从会话获取值。将1与会话值session.setAttribute("value",countValue);然后再次将其设置为会话session.setAttribute("value",countValue); SO会话将永久具有该值。 如果要删除会话值,请使用session.removeAttribute("value"); 在项目中的任何位置调用此会话。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM