在Java Web开发中,JSP(JavaServer Pages)常用于创建动态网页。修改密码是一个常见的功能,下面是一个简单的JSP修改密码的源码示例,包括HTML表单和JSP处理逻辑。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>修改密码</title>
</head>
<body>
<h2>修改密码</h2>
<form action="process_change_password.jsp" method="post">
当前密码: <input type="password" name="currentPassword"><br><br>
新密码: <input type="password" name="newPassword"><br><br>
确认新密码: <input type="password" name="confirmNewPassword"><br><br>
<input type="submit" value="提交">
</form>
</body>
</html>
<%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>处理修改密码</title>
</head>
<body>
<%
String currentPassword = request.getParameter("currentPassword");
String newPassword = request.getParameter("newPassword");
String confirmNewPassword = request.getParameter("confirmNewPassword");
// 假设用户ID通过session获取
int userId = (int) session.getAttribute("userId");
if (!newPassword.equals(confirmNewPassword)) {
out.println("新密码和确认密码不匹配。<br>");
response.setHeader("Refresh", "2; URL=change_password.jsp");
return;
}
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database", "username", "password");
// 验证当前密码
pstmt = conn.prepareStatement("SELECT * FROM users WHERE id = ? AND password = ?");
pstmt.setInt(1, userId);
pstmt.setString(2, currentPassword);
rs = pstmt.executeQuery();
if (rs.next()) {
// 更新密码
pstmt = conn.prepareStatement("UPDATE users SET password = ? WHERE id = ?");
pstmt.setString(1, newPassword);
pstmt.setInt(2, userId);
pstmt.executeUpdate();
out.println("密码修改成功。<br>");
} else {
out.println("当前密码不正确。<br>");
}
} catch (Exception e) {
e.printStackTrace();
out.println("数据库操作失败: " + e.getMessage());
} finally {
try { if (rs != null) rs.close(); } catch (Exception e) {}
try { if (pstmt != null) pstmt.close(); } catch (Exception e) {}
try { if (conn != null) conn.close(); } catch (Exception e) {}
}
response.setHeader("Refresh", "2; URL=change_password.jsp");
%>
</body>
</html>
process_change_password.jsp
。此示例提供了一个基本的框架,具体实现可能需要根据实际项目需求进行调整。
领取专属 10元无门槛券
手把手带您无忧上云