欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

ajax實(shí)現(xiàn)jsp表格刪除數(shù)據(jù)庫(kù)數(shù)據(jù)

Ajax是一種用于在網(wǎng)頁(yè)中進(jìn)行異步數(shù)據(jù)交互的技術(shù),能夠提高用戶(hù)體驗(yàn)和頁(yè)面性能。在JavaWeb開(kāi)發(fā)中,我們常常需要實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的增刪改查操作。本文將通過(guò)使用Ajax來(lái)實(shí)現(xiàn)從JSP頁(yè)面中刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù),來(lái)介紹該技術(shù)的應(yīng)用。

假設(shè)我們有一個(gè)包含學(xué)生信息的數(shù)據(jù)庫(kù)表,其中包含學(xué)生的姓名、年齡和所在班級(jí)等信息。現(xiàn)在我們需要在JSP頁(yè)面中展示這些學(xué)生的數(shù)據(jù),并提供刪除功能,即通過(guò)點(diǎn)擊刪除按鈕來(lái)從數(shù)據(jù)庫(kù)中刪除選定的學(xué)生記錄。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>學(xué)生信息列表</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<table>
<tr>
<th>姓名</th>
<th>年齡</th>
<th>班級(jí)</th>
<th>操作</th>
</tr>
<%
// 獲取學(xué)生信息列表的代碼
// ...
// 遍歷學(xué)生信息列表,生成表格行并輸出到頁(yè)面中
for (Student student : studentList) {
%>
<tr>
<td><%= student.getName() %></td>
<td><%= student.getAge() %></td>
<td><%= student.getClass() %></td>
<td>
<button class="delete-btn" data-id=<%= student.getId() %>>刪除</button>
</td>
</tr>
<%
}
%>
</table>
<script>
$(function() {
// 綁定刪除按鈕的點(diǎn)擊事件
$(".delete-btn").click(function() {
var studentId = $(this).data("id");
// 發(fā)送Ajax請(qǐng)求,調(diào)用后臺(tái)刪除學(xué)生信息的接口
$.ajax({
url: "deleteStudent.jsp",
type: "POST",
data: {id: studentId},
success: function(response) {
// 刪除成功后,刷新頁(yè)面或移除該行數(shù)據(jù)等操作
// ...
},
error: function() {
alert("刪除失敗");
}
});
});
});
</script>
</body>
</html>

在上述代碼中,我們首先通過(guò)JSP腳本來(lái)獲取學(xué)生信息列表,并使用循環(huán)將每個(gè)學(xué)生的信息輸出到表格中。每個(gè)學(xué)生信息的最后一列是一個(gè)刪除按鈕,它的data-id屬性值設(shè)置為對(duì)應(yīng)學(xué)生的ID,這樣在點(diǎn)擊按鈕時(shí)能夠通過(guò)JavaScript獲取到該學(xué)生的ID。

然后,通過(guò)jQuery選擇器綁定了刪除按鈕的點(diǎn)擊事件。當(dāng)點(diǎn)擊刪除按鈕時(shí),通過(guò)jQuery的data()方法獲取到該學(xué)生的ID,并傳遞給后臺(tái)的刪除接口。

后臺(tái)的刪除接口在deleteStudent.jsp文件中實(shí)現(xiàn),在這個(gè)JSP中,我們可以通過(guò)request.getParameter()方法獲取到傳遞過(guò)來(lái)的學(xué)生ID,并根據(jù)ID執(zhí)行刪除數(shù)據(jù)庫(kù)中對(duì)應(yīng)的學(xué)生記錄的代碼。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.Connection"%>
<%@ page import="java.sql.DriverManager"%>
<%@ page import="java.sql.Statement"%>
<%@ page import="javax.naming.Context"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="javax.naming.NamingException"%>
<%@ page import="javax.sql.DataSource"%>
<%
int studentId = Integer.parseInt(request.getParameter("id"));
try {
// 獲取數(shù)據(jù)庫(kù)連接
// 方式一:使用DriverManager獲取連接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "password");
// 方式二:使用DataSource獲取連接(推薦使用)
// Context ctx = new InitialContext();
// DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/mydb");
// Connection connection = ds.getConnection();
// 創(chuàng)建Statement對(duì)象
Statement statement = connection.createStatement();
// 執(zhí)行刪除語(yǔ)句
String sql = "DELETE FROM student WHERE id = " + studentId;
statement.executeUpdate(sql);
// 關(guān)閉Statement和連接
statement.close();
connection.close();
// 返回刪除成功的響應(yīng),通知前端
response.getWriter().write("刪除成功");
} catch (Exception e) {
e.printStackTrace();
// 返回刪除失敗的響應(yīng),通知前端
response.getWriter().write("刪除失敗");
}
%>

在deleteStudent.jsp中,我們首先獲取前端傳遞過(guò)來(lái)的學(xué)生ID,并將其轉(zhuǎn)換為整數(shù)型。然后根據(jù)獲取數(shù)據(jù)庫(kù)連接的方式,使用DriverManager或者DataSource獲取一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象。

然后,創(chuàng)建一個(gè)Statement對(duì)象,并執(zhí)行刪除操作的SQL語(yǔ)句,即DELETE語(yǔ)句。執(zhí)行完畢后,記得關(guān)閉Statement對(duì)象和數(shù)據(jù)庫(kù)連接,釋放資源。

最后,通過(guò)response.getWriter().write()方法向前端返回刪除操作的結(jié)果。如果刪除成功,返回"刪除成功";如果刪除失敗,返回"刪除失敗"。

通過(guò)上述的代碼示例,我們實(shí)現(xiàn)了通過(guò)Ajax在JSP頁(yè)面中刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)。這樣,用戶(hù)在頁(yè)面中點(diǎn)擊刪除按鈕時(shí),不會(huì)觸發(fā)頁(yè)面的刷新,而是通過(guò)Ajax請(qǐng)求來(lái)與后臺(tái)交互并刪除數(shù)據(jù),從而提高了用戶(hù)體驗(yàn)和頁(yè)面性能。