java脚本无法与 java 中的 printwriter 一起使用

javascript not working with printwriter in java

您好,我正在创建一个网页,该网页是使用 printwriter 从 servlet 开发的,我正在附加 HTML、css 和 js,但是 javascript 函数不起作用,这是因为语法错误还是 java 中不支持 js?

我的代码

String htmlHeader = null;
        htmlHeader = "<HTML><HEAD><TITLE>"
                + title
                +"</TITLE>"
                +"<link rel=stylesheet href=/resources/css/jquery-ui.css>"
                +"<script src=//code.jquery.com/jquery-1.10.2.js></script>"
                +"<script src=//code.jquery.com/ui/1.11.4/jquery-ui.js></script>"
                +"<style type=text/css>"
                +"body "
                +"{background-image: url(resources/img/timer_page_new.png);"
                +"-moz-background-size: cover;-webkit-background-size: cover;"
                +"background-size: cover;background-position: top center !important;background-repeat: no-repeat !important;"
                +"background-attachment: fixed;}"
                +"#sel.ui-selecting { background: '#FECA40'; }"
                +"#sel.ui-selected { background: '#F39814'; color: '#7e7d79'; }"
                +"#sel { list-style-type: none; margin: 0; padding: 0; width: 100%; }"
                +"#sel li { margin: 6px; padding: 0.4em; font-size: 1.4em; height: 28px; }</style>"

                +"<script type=text/javascript>"
                +"function init(){"
                +"var ol = document.getElementById('selectable');"
                +" var macId ="+macId+" ;"
                + "var entry = document.createElement('li');"
                +"entry.appendChild(document.createTextNode(macId));"
                +"ol.appendChild(entry);"
                +"ol.addEventListener('click', function(e) {"
                +"if (e.target.tagName === 'LI'){"
                +"alert(e.target.id);"
                +"}" 
                +"});"
                +"}"
                +"setTimeout(function () {"
                +" location.reload();"
                +" }, 20 * 1000);"
                +"</script>"
                +"</HEAD><BODY onload=init("+macId+","+tHr+","+tMin+")><div align=center>";
        return htmlHeader;

带有函数 init() 的 js 文件

function init(macId,tHr,tMin){

              var sTempTableRow='<tr><td width=150px><div align=center><font size=4 color=white face=verdana>'+macId+'</font></div></td>'
              +'<td width=150px><div align=center><font size=4 color=white face=verdana>'+tHr+'</font></div></td></tr>'
              +'<td width=150px><div align=center><font size=4 color=white face=verdana>'+tMin+'</font></div></td>';
              $('#timerTable').append(sTempTableRow);
          }

html的一部分

<BODY onload=init("+macId+","+tHr+","+tMin+")>

如果您想在 html 文件中编写 javascript 代码,我会说您可以使用 JSP 而不是 Servlet。

但是如果你想使用 servlet,那么你可以将你的 cssjavascript 部分分别移动到单独的 .css.js 文件中,并且只包含这些文件使用你的PrintWriter。以及您想要传递给 javascript 的任何动态字段,您可以将其作为 参数 传递给 javascript 函数(如 function init(macId) {)。