如何防止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运行在浏览器中之前(在它被发送到浏览器之前),JSP在服务器上执行。

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

所有服务器看到的是:

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

正如你所看到的,有没有条件执行在这里所有。

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