如何防止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。或通过发布表单。