色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

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

AJAX(Asynchronous JavaScript and XML)是一種用于創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用程序的技術(shù)。它通過(guò)異步請(qǐng)求和響應(yīng)數(shù)據(jù)的方式,實(shí)現(xiàn)了在不刷新整個(gè)頁(yè)面的情況下與服務(wù)器進(jìn)行數(shù)據(jù)交互。在JSP中結(jié)合AJAX,我們可以實(shí)現(xiàn)刪除數(shù)據(jù)庫(kù)表格的功能。本文將通過(guò)多個(gè)實(shí)例來(lái)說(shuō)明如何使用AJAX實(shí)現(xiàn)這一功能。

首先,我們需要準(zhǔn)備一個(gè)數(shù)據(jù)庫(kù)表格,例如一個(gè)學(xué)生信息表格。該表格包含學(xué)生的姓名、年齡和性別等信息。我們希望實(shí)現(xiàn)在不刷新頁(yè)面的情況下,刪除表格中的某一行數(shù)據(jù)。為此,在JSP頁(yè)面中,我們可以使用AJAX發(fā)送請(qǐng)求至服務(wù)器,然后服務(wù)器刪除對(duì)應(yīng)的數(shù)據(jù),最后將更新后的表格返回給前端頁(yè)面。

// 前端代碼
function deleteRow(id) {
if (confirm("確定要?jiǎng)h除這條數(shù)據(jù)嗎?")) {
$.ajax({
url: "delete.jsp", 
type: "POST",
data: {id: id},
success: function(response) {
$("#table").html(response); // 將更新后的表格插入到頁(yè)面中
}
});
}
}

在上述代碼中,我們定義了一個(gè)名為deleteRow的函數(shù),該函數(shù)用于處理刪除數(shù)據(jù)的邏輯。當(dāng)用戶點(diǎn)擊刪除按鈕時(shí),會(huì)觸發(fā)該函數(shù)。在函數(shù)內(nèi)部,我們首先使用confirm函數(shù)來(lái)確認(rèn)用戶是否確定刪除該條數(shù)據(jù)。如果用戶點(diǎn)選了確定,就會(huì)發(fā)送一個(gè)AJAX請(qǐng)求到服務(wù)器的delete.jsp頁(yè)面,并且?guī)弦獎(jiǎng)h除的數(shù)據(jù)的id。服務(wù)器接收到請(qǐng)求后,會(huì)根據(jù)接收到的id刪除對(duì)應(yīng)的數(shù)據(jù),并將更新后的表格以響應(yīng)形式返回。前端頁(yè)面通過(guò)使用jQuery的html函數(shù)將響應(yīng)的HTML代碼插入到指定的位置,完成表格的更新。

接下來(lái),我們需要在服務(wù)器端的delete.jsp頁(yè)面中編寫代碼來(lái)處理AJAX請(qǐng)求和實(shí)現(xiàn)刪除數(shù)據(jù)的功能。

<%@ page import="java.sql.*" %><%
int id = Integer.parseInt(request.getParameter("id"));   // 獲取前端發(fā)送的id數(shù)據(jù)
Connection con = null;
PreparedStatement pstmt = null;
String url = "jdbc:mysql://localhost:3306/database_name";   // 數(shù)據(jù)庫(kù)連接信息
String username = "username";
String password = "password";
try {
Class.forName("com.mysql.jdbc.Driver");   // 加載MySQL驅(qū)動(dòng)
con = DriverManager.getConnection(url, username, password);   // 建立數(shù)據(jù)庫(kù)連接
String sql = "DELETE FROM student WHERE id = ?";   // SQL語(yǔ)句,根據(jù)id刪除數(shù)據(jù)
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, id);   // 將id參數(shù)設(shè)置到SQL語(yǔ)句中的占位符
int rows = pstmt.executeUpdate();   // 執(zhí)行SQL語(yǔ)句
// 返回更新后的表格
String result = "";
if (rows >0) {
result = generateTable();   // 查詢數(shù)據(jù)庫(kù),生成更新后的表格
}
out.println(result);
} catch (Exception e) {
out.println("刪除數(shù)據(jù)失敗:" + e.getMessage());
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
out.println("關(guān)閉數(shù)據(jù)庫(kù)連接失敗:" + e.getMessage());
}
}
// 查詢數(shù)據(jù)庫(kù),并生成HTML表格
public String generateTable() throws Exception {
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String url = "jdbc:mysql://localhost:3306/database_name";   // 數(shù)據(jù)庫(kù)連接信息
String username = "username";
String password = "password";
try {
Class.forName("com.mysql.jdbc.Driver");   // 加載MySQL驅(qū)動(dòng)
con = DriverManager.getConnection(url, username, password);   // 建立數(shù)據(jù)庫(kù)連接
String sql = "SELECT * FROM student";   // 查詢所有數(shù)據(jù)
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();   // 執(zhí)行查詢語(yǔ)句
// 生成表格
StringBuilder table = new StringBuilder();
table.append("<table>");
table.append("<thead>");
table.append("<tr><th>姓名</th><th>年齡</th><th>性別</th></tr>");
table.append("</thead>");
table.append("<tbody>");
while (rs.next()) {
String name = rs.getString("name");
int age = rs.getInt("age");
String gender = rs.getString("gender");
table.append("<tr>");
table.append("<td>" + name + "</td>");
table.append("<td>" + age + "</td>");
table.append("<td>" + gender + "</td>");
table.append("</tr>");
}
table.append("</tbody>");
table.append("</table>");
return table.toString();
} catch (Exception e) {
throw e;
} finally {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
throw e;
}
}
}
%>

在上述代碼中,我們首先獲取前端發(fā)送的id數(shù)據(jù),并建立與數(shù)據(jù)庫(kù)的連接。然后,我們使用SQL語(yǔ)句來(lái)刪除對(duì)應(yīng)的數(shù)據(jù),并將更新后的表格存儲(chǔ)在result變量中。最后,我們通過(guò)out對(duì)象將result輸出,即向前端頁(yè)面返回更新后的表格。在代碼末尾,我們還定義了一個(gè)generateTable函數(shù),該函數(shù)用于查詢數(shù)據(jù)庫(kù)并生成HTML表格。

通過(guò)以上步驟,我們可以在JSP中使用AJAX完成刪除數(shù)據(jù)庫(kù)表格的功能。通過(guò)發(fā)送AJAX請(qǐng)求至服務(wù)器,然后服務(wù)器響應(yīng)并刪除對(duì)應(yīng)數(shù)據(jù),最終返回更新后的表格到前端頁(yè)面,實(shí)現(xiàn)了不刷新整個(gè)頁(yè)面的刪除操作。