如何防止 JSP 执行


var answer = confirm("Do you want to save?");
alert(answer);
if(answer==true){
    <%
        session.setAttribute("confirm", "true");
    %>
}else if(answer==false){
    <%
        session.setAttribute("confirm", "false");
    %>
}

我的代码出了什么问题? 我做了一个确认对话框。 每当我单击"取消"按钮时,它都会将"确认"属性设置为"false"。 但是当我单击"确定"时,它在真实条件下执行了代码,但也在错误条件中执行了JSP代码。 它忽略该条件。 告诉我出了什么问题?

JSP 在 JavaScript 在浏览器上运行之前(甚至在发送到浏览器之前)在服务器上执行。

对于服务器端执行,JavaScript 被完全忽略。它只是输出的一部分,就像 HTML 一样。

服务器看到的只是:

jspOut.write("var answer = ......... ");
session.setAttribute("confirm", "true");
jspOut.write("} else if .....  ");
session.setAttribute("confirm", "false");

如您所见,这里根本没有条件执行。

如果你想从JavaScript与服务器交互,你必须发出一个新的请求来传输和接收数据。例如使用 Ajax。或者通过发布表单。

最新更新