javascript - 如何阻止jsp执行

标签 javascript 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");
    %>
}

我的代码有什么问题吗?我做了一个确认对话框。每当我单击“取消”按钮时,它都会将“确认”属性设置为“假”。但是当我单击“确定”时,它执行了 true 条件内的代码,但也执行了 false 条件内的 jsp 代码。它忽略该条件。告诉我怎么了?

最佳答案

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

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

服务器看到的只是:

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

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

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

关于javascript - 如何阻止jsp执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29818990/

相关文章:

java - JSTL 二维数组迭代

mysql - 我正在尝试使用 JSP 创建测验,但我无法让单选按钮处理多个问题

javascript - 如何将字符串转换为 int MongoDB 数组

javascript - 在 anchor 链接上加载内容点击

java - 如何在 View Bean中获取JSP请求和响应

java - Spring Boot 使用或不使用 Maven 运行?如果没有,JSP 就无法解析

javascript - 如何延迟点击滚动事件?

javascript - 如何将从 JSON API 获取的自动完成数据推送到文本框?

javascript - 如何跳过不起作用的 promise ?

jsp - Gradle使用过滤器替换jsp中的文本