gpt4 book ai didi

java - 如何使 JSP 函数仅在调用时运行?

转载 作者:行者123 更新时间:2023-11-29 05:58:50 27 4
gpt4 key购买 nike

我有一个 JSP 页面如下:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Admin Tools</title>
<jsp:include page="/basic/nav.jsp"/>
<link rel="stylesheet" type="text/css" href="tools.css"/>
</head>
<body>
<div class="container">
<h2>Admin Tools</h2>
<br/><br/><br/><br/>
<%@page import="java.sql.ResultSet"%>
<%
boolean def_admin = false, def_admin_changed = false;
conn.connect.main(null);
conn.dbc.main(null);
ResultSet rstools = conn.connect.st.executeQuery("select * from admins where uname='admin'");
if (rstools.next()) {
if (rstools.getString("uname").equals("admin") && rstools.getString("password").equals("123")) {
def_admin = true;
}
if (rstools.getString("uname").equals("admin") && !rstools.getString("password").equals("123")) {
def_admin_changed = true;
}
}
%>
<%if (def_admin == false) {%>
Add Default Admin Account :<br/>
<input type="button" value="Add" onclick="<% add_admin(); %>"/>
<% } else if (def_admin == true && def_admin_changed == false) { %>
Delete Default Admin Account :<br/>
<input type="button" value="Delete" onclick="<% delete_admin(); %>"/>
<% } else if (def_admin == true && def_admin_changed == false) { %>
The Default Admin Password Exists but the password has been changed<br/>
Do you still want to delete the Default Admin Account?<br/>
<input type="button" value="Even so, Delete it" onclick="<% delete_admin(); %>"/>
<% }%>

<div id="tools_error"></div>

<%!
boolean insert_success = false;

void add_admin() {
try {
int Urows;
Urows = conn.connect.st.executeUpdate("insert into admins(uname,password) values('admin','123');");
if (Urows == 1) {
insert_success = true;
} else {
insert_success = false;
}
%>
<script>
(function () {
boolean i_s = "<%=insert_success%>";
if (i_s == false) {
document.getElementById("tools_error").value = "There has been an error in Adding Default Admin";
}
});
</script>
<%!
} catch (Exception e) {
}
}

void delete_admin() {

}
%>
</div>
</body>
<jsp:include page="/basic/footer.jsp"/>
</html>

正如您在单击按钮时看到的那样,我已经让它运行已声明的 JSP 函数。但是当加载 JSP 文件时,函数会自动运行,插入 MYSQL 查询会运行,自动插入查询中给定的值。

我不希望函数 add_admin()delete_admin() 在加载时自动运行。有什么建议吗?

最佳答案

当有人打开您的网页并单击按钮时,网页中的事件(例如 onclick 事件)在客户端执行。 JSP 脚本在网页打开时执行,其结果是客户端收到的实际页面。因此,您的方法仅在加载页面(并编译 JSP)时执行。 Java 代码在您生成的网页中甚至不可见。如果您在浏览器中打开它并查看源代码,您就会明白我的意思。

关于java - 如何使 JSP 函数仅在调用时运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46829460/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com