【问题标题】:javascript ignoring jsp codejavascript忽略jsp代码
【发布时间】:2015-05-04 07:28:33
【问题描述】:

我在这段代码中遇到了以下问题:

<center><button onclick="agregartabla_materias()">Agregar nueva tabla</button></center>
<script>
    function agregartabla_materias() {
    <%
            String sql = "create table if not exists materias ("
                    + "codigo decimal (8),"
                    + "nombre varchar (40),"
                    + "turno text [],"
                    + "ref_profesor varchar (10)"
                    + ");";
            Statement myStmt = con.getConexion().createStatement();
            myStmt.executeUpdate(sql);
    %>
    }
</script>

我想要一个按钮,当单击它时,它应该将 sql 查询发送到数据库。当我打开页面时,查询已经发送,无需单击按钮。为了测试一些东西,我删除了数据库上的表并尝试单击按钮,它没有创建表。所以就像 javascript 代码是空的,并且 在它之外,所以当我重新加载页面而不是当我单击按钮时,它总是被调用。

感谢您的建议。

【问题讨论】:

  • 不能在前端工作。您需要有一个后端命令并将其附加到按钮
  • 我什至不知道前端是什么 :D 我的老师告诉我创建一个带有按钮的网站,当点击这些按钮时,可以创建表格、插入数据、创建外键和主键等跨度>
  • 在做作业之前多阅读一些内容:P

标签: java javascript html jsp


【解决方案1】:

scriptlet 在 JSP 编译时执行 - 这就是代码在每次重新加载时执行的原因。

javascript 不包含它,因为代码已执行并且不打印任何内容并且该方法保持为空。

使用 scriptlet 不是一个好方法,但如果您想这样做,您可以创建另一个执行该操作的 jsp 并使用 javascript(或使用 ajax)调用它。这是前端 - 调用后端 - 将结果返回到前端。 Javascript 是前端(由客户端执行),您要执行的代码是后端(在服务器上执行)。客户端(浏览器)无法连接到您的数据库并执行 sqls,它只能向后端发送请求,后端应该完成工作。

尝试使用两个 jsp 页面。

button.jsp:

<center><a href="executeSql.jsp">Agregar nueva tabla</a></center>

执行Sql.jsp:

<script>
    <%
        String sql = "create table if not exists materias ("
                + "codigo decimal (8),"
                + "nombre varchar (40),"
                + "turno text [],"
                + "ref_profesor varchar (10)"
                + ");";
        Statement myStmt = con.getConexion().createStatement();
        myStmt.executeUpdate(sql);
%>
window.location="button.jsp";

这是一个非常糟糕的例子,但可以工作。这样第一个jsp(button.jsp)在点击时会调用第二个jsp。后端代码将执行并重定向回 button.jsp

【讨论】:

  • 谢谢维塞林。我像这样更改了代码,但它不起作用,一定是错误的:D 我不能在这里添加代码
  • 你不能用这么简单的代码来做。您需要在网页中使用 javascript 来调用服务器(jsp 页面)并让服务器执行某些操作。在您的示例中,您可以使用两个 JSP 页面来完成
  • onclick="agregartabla_materias.jsp" 是错的,不是吗?然后我创建了另一个类似的jsp文件和由 包围的OP代码
  • onclick 很糟糕。第一次这样写的onclick不会做任何事情。它应该是javascript函数。其次它无论如何都不起作用;)我试图在响应中编写一个简单的解决方案。我不确定它是否会起作用,因为我尚未对其进行测试,但您可以理解。
  • 非常感谢您提供的代码,这有点成功。它只是没有将我重定向回 button.jsp(原始页面),但它成功创建了表
【解决方案2】:

试试这个方法。并指定您使用的页面语言。

希望对你有帮助

【讨论】:

  • 感谢您的宝贵时间!同样的问题,加载页面时调用代码并且单击按钮不会创建表:(
  • 您使用哪种页面开发语言?尝试在主体中使用 scriptlet 编写代码,并在代码的功能区域中执行查询。
  • 再次感谢,我正在使用 HTML
猜你喜欢
  • 2014-03-11
  • 1970-01-01
  • 2013-01-28
  • 1970-01-01
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 2015-08-19
相关资源
最近更新 更多