JSP(JavaServer Pages)是一种用于创建动态Web页面的技术,它允许开发者在HTML或XML等静态页面中嵌入Java代码。以下是关于JSP增删代码的基础概念、优势、类型、应用场景以及常见问题及解决方法。
.jsp
为扩展名。<% %>
用于嵌入Java代码,<%= %>
用于输出表达式的值。<% %>
内嵌Java代码。假设我们有一个简单的JSP页面,用于显示和操作用户列表。
users.jsp
)<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>User List</title>
</head>
<body>
<h1>User List</h1>
<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Action</th>
</tr>
<%-- 假设users是从数据库获取的用户列表 --%>
<c:forEach items="${users}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td><a href="deleteUser?id=${user.id}">Delete</a></td>
</tr>
</c:forEach>
</table>
<form action="addUser" method="post">
Name: <input type="text" name="name"><br>
<input type="submit" value="Add User">
</form>
</body>
</html>
deleteUser.jsp
)<%@ page import="java.sql.*" %>
<%
String id = request.getParameter("id");
// 连接数据库并执行删除操作
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
PreparedStatement ps = conn.prepareStatement("DELETE FROM users WHERE id = ?");
ps.setString(1, id);
ps.executeUpdate();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
response.sendRedirect("users.jsp");
%>
addUser.jsp
)<%@ page import="java.sql.*" %>
<%
String name = request.getParameter("name");
// 连接数据库并执行插入操作
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
PreparedStatement ps = conn.prepareStatement("INSERT INTO users (name) VALUES (?)");
ps.setString(1, name);
ps.executeUpdate();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
response.sendRedirect("users.jsp");
%>
PreparedStatement
而不是Statement
来防止SQL注入。response.sendRedirect
)而不是转发(request.getRequestDispatcher
)来避免表单重复提交。通过以上示例和解决方案,您可以更好地理解和应用JSP进行增删操作。
领取专属 10元无门槛券
手把手带您无忧上云