jsp中用eclipse2022和SQL server2014,tomcat10.0写一个学生修改密码
时间: 2023-07-18 20:33:27 浏览: 89
jsp学生信息管理系统,有数据库和运行教程,eclipse+mysql+tomcat
首先,你需要创建一个 JSP 页面来实现学生修改密码的功能。以下是一个简单的示例代码:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改密码</title>
</head>
<body>
<h1>修改密码</h1>
<form action="change-password.jsp" method="post">
<label>原密码:<input type="password" name="oldPassword"></label><br>
<label>新密码:<input type="password" name="newPassword"></label><br>
<label>确认新密码:<input type="password" name="confirmPassword"></label><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
在上面的代码中,我们创建了一个表单,用户可以输入原密码、新密码和确认新密码,然后点击提交按钮。表单的 action 属性指向一个名为 change-password.jsp 的 JSP 页面,这个页面将处理密码修改请求。
下面是 change-password.jsp 页面的代码,用于处理密码修改请求并更新数据库中的密码:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改密码</title>
</head>
<body>
<%
// 获取表单参数
String oldPassword = request.getParameter("oldPassword");
String newPassword = request.getParameter("newPassword");
String confirmPassword = request.getParameter("confirmPassword");
// 验证新密码是否一致
if (!newPassword.equals(confirmPassword)) {
out.println("新密码和确认密码不一致!");
return;
}
// 获取当前登录用户的信息
String studentId = (String) session.getAttribute("studentId");
try {
// 创建数据库连接
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=学生管理系统";
String username = "sa";
String password = "123456";
Connection conn = DriverManager.getConnection(url, username, password);
// 查询当前用户的密码
PreparedStatement pstmt = conn.prepareStatement("SELECT Password FROM Students WHERE StudentId = ?");
pstmt.setString(1, studentId);
ResultSet rs = pstmt.executeQuery();
rs.next();
String dbPassword = rs.getString("Password");
// 验证原密码是否正确
if (!dbPassword.equals(oldPassword)) {
out.println("原密码不正确!");
return;
}
// 更新用户密码
pstmt = conn.prepareStatement("UPDATE Students SET Password = ? WHERE StudentId = ?");
pstmt.setString(1, newPassword);
pstmt.setString(2, studentId);
pstmt.executeUpdate();
out.println("密码修改成功!");
// 关闭数据库连接
rs.close();
pstmt.close();
conn.close();
} catch (Exception e) {
out.println("数据库操作出现异常:" + e.getMessage());
}
%>
</body>
</html>
```
在上面的代码中,我们首先获取了表单参数,然后验证新密码和确认新密码是否一致。接着,我们获取当前登录用户的信息,并查询数据库中该用户的密码。如果原密码不正确,则输出错误信息。否则,我们更新数据库中该用户的密码,并输出修改成功的提示信息。
注意,上面的代码中使用了 SQL Server 数据库,需要在项目中添加相应的 JDBC 驱动。另外,为了保证安全性,我们应该在实际应用中采用加密算法对密码进行加密存储。
希望以上示例代码能够帮助你实现学生修改密码的功能。
阅读全文