java - JSP 中的 while 循环执行 javascript 不起作用?

标签 java apache jsp tomcat load-balancing

如果我遗漏了任何内容,请随时编辑问题或询问更多详细信息。

我知道在 JSP 中使用 Scriptlet 是不好的。

但是我被指派维护现有的JAVA项目,该项目仅使用JSPservlet构建(无框架)。

我的任务是使用 Apache HTTP Server 为我的应用程序实现负载平衡。

应用程序可以在没有负载平衡的情况下正常工作。当我使用 Apache HTTP Server 实现负载平衡时,我遇到了 JSP 的问题。

我将给出一个场景。我的 JSP 有一个 while 循环,它运行 javascript 来更新内容。

我的 JSP 有,

<%
    String jsPreAppend = "<script language=JavaScript >push('";     
    String jsPostAppend = "')</script> ";   
    String s=null;   
    int i = 0;

       try {
        while (true) {
            System.out.println("count :"+i);
            out.print(jsPreAppend + i + jsPostAppend);        
            out.flush();

            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                out.print(jsPreAppend + "InterruptedException: " + e + jsPostAppend);
            }

            i++;

          }
       } catch (Exception e) {
             out.print(jsPreAppend + "Exception: " + e + jsPostAppend);
       }
%> 

我的 JavaScript 有,

 function push(content) {   
         document.getElementById('update').innerHTML = content;
 }

控制台输出将是,

count :1
count :2
count :3
.
.
.
count : n
count :n+1

但是JSP中的内容不会更新。我认为 JavaScript 在 while 循环中失败了。

但是 SysOut() 可以工作,因为更新的内容将在控制台中每打印一次。

但是相同的应用程序在没有负载平衡的情况下也可以正常工作(只有一个 tomcat)。

希望我们的堆栈用户能够帮助我。

最佳答案

当 HTML 被渲染时,JSP 就已经被执行了。所以你想要做的事情不能通过该代码来实现。

您需要编写一个 Java 脚本方法,偶尔进行一些更新。 Check this thread使用 Javascript 编写相同的逻辑

关于java - JSP 中的 while 循环执行 javascript 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18441246/

相关文章:

php - VHost 和 htaccess - 500 内部服务器错误

java - 从模型声明并初始化 JSP 中的对象

java - 如何从 Servlet 重定向到 JSP 文件

php - 如何从使用 header() 函数设置的错误代码服务器重定向到默认错误页面?

java - Tomcat 消耗非常高的 CPU 使用率

java - 克隆(通过 Cloneable 接口(interface)或复制构造函数)对象与在原型(prototype)模式中创建新对象的性能

java - 如何使用Java获取两个日期之间的月份名称

php - 我的 GET 变量被转义了吗?

eclipse - 构建 vs 部署 vs 发布 (Eclipse IDE)

java - 根据国家/地区习惯设置日期格式