代码10
。
管理人员登录功能实现
package cn.edu.tyut.demo13;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@WebServlet("/zhiyuanupdatekeyservlet")
public class zhiyuanupdatekeyservlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
// 获取员工提交的旧密码、新密码、新密码确认
String oldPassword = request.getParameter("oldPassword");
String newPassword = request.getParameter("newPassword");
String confirmNewPassword = request.getParameter("confirmNewPassword");
// 获取当前登录员工的信息(此处假设从session中获取登录员工的jobid,实际应用中需根据具体登录逻辑调整)
Object jobidObj = request.getSession().getAttribute("jobid");
if (jobidObj == null) {
out.println("<html><body><p>未获取到登录员工信息,请重新登录后再试。</p><a href='login.jsp'>返回登录页面</a></body></html>");
return;
}
int jobid = (int) jobidObj;
try (Connection connection = Database.getConnection()) {
// 先查询数据库验证旧密码是否正确
String selectSql = "SELECT password FROM zhiyuan WHERE jobid =?";
try (PreparedStatement selectStmt = connection.prepareStatement(selectSql)) {
selectStmt.setInt(1, jobid);
try (ResultSet rs = selectStmt.executeQuery()) {
if (rs.next()) {
String storedPassword = rs.getString("password");
if (!storedPassword.equals(oldPassword)) {
out.println("<html><body><p>旧密码输入错误,请重新输入。</p><a href='updatePassword.jsp'>返回修改密码页面</a></body></html>");
return;
}
} else {
out.println("<html><body><p>未找到对应的员工信息,请联系管理员。</p><a href='zhiyuanupdatekey.jsp'>返回修改密码页面</a></body></html>");
return;
}
}
}
// 验证新密码和确认新密码是否一致
if (!newPassword.equals(confirmNewPassword)) {
out.println("<html><body><p>新密码和确认新密码不一致,请重新输入。</p><a href='zhiyuanupdatekey.jsp'>返回修改密码页面</a></body></html>");
return;
}
// 更新密码
String updateSql = "UPDATE zhiyuan SET password =? WHERE jobid =?";
try (PreparedStatement updateStmt = connection.prepareStatement(updateSql)) {
updateStmt.setString(1, newPassword);
updateStmt.setInt(2, jobid);
int rowsAffected = updateStmt.executeUpdate();
if (rowsAffected > 0) {
out.println("<html><body><p>密码修改成功。</p><a href='login.jsp'>返回首页</a></body></html>");
} else {
out.println("<html><body><p>密码修改失败,请稍后再试。</p><a href='zhiyuanupdatekey.jsp'>返回修改密码页面</a></body></html>");
}
}
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
out.println("<html><body><p>数据库操作出现错误: " + e.getMessage() + "</p><a href='zhiyuanupdatekey.jsp'>返回修改密码页面</a></body></html>");
}
}
}

浙公网安备 33010602011771号