package web.servlet.admin; import domain.Admin; import domain.Student; import service.AdminService; import service.StudentService; import service.impl.AdminServiceImpl; import service.impl.StudentServiceImpl; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; import java.util.Date; /** * 管理员密码更新的Servlet处理类 */ @WebServlet("/adminPasswordUpdateServlet") public class AdminPasswordUpdateServlet extends HttpServlet { // 处理POST请求 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置请求编码为utf-8 request.setCharacterEncoding("utf-8"); // 获取当前会话 HttpSession session = request.getSession(); // 从会话中获取管理员对象 Admin admin= (Admin) session.getAttribute("admin"); // 获取管理员ID String adminid = admin.getA_id(); // 获取新密码 String newpassword = request.getParameter("admin-newpassword"); // 获取确认新密码 String ennewpassword = request.getParameter("admin-ennewpassword"); // 定义正则表达式,用于验证密码格式 String regex = "^[\\w]{3,12}$"; // 判断新密码是否符合正则表达式 boolean flag = newpassword.matches(regex); // 如果不符合,则设置错误信息,并跳转到更新密码页面 if (!flag) { request.setAttribute("update_msg", "密码格式错误,重新提交!"+String.format("%tT",new Date())); request.getRequestDispatcher("/WEB-INF/admin/adminUpdatePassword.jsp").forward(request, response); // 如果新密码和确认密码不一致,则设置错误信息,并跳转到更新密码页面 } else if (!newpassword.equals(ennewpassword)) { request.setAttribute("update_msg", "密码确认错误,请重新提交!" + String.format("%tT", new Date())); request.getRequestDispatcher("/WEB-INF/admin/adminUpdatePassword.jsp").forward(request, response); // 如果新密码和确认密码一致,则继续执行 } else { // 创建AdminService实例 AdminService service= new AdminServiceImpl(); // 调用updatePassword方法,更新密码 service.updatePassword(adminid,newpassword); // 调用findAdminById方法,根据adminid查找管理员信息 Admin newAdmin = service.findAdminById(admin); // 将新的管理员信息赋值给admin admin = newAdmin; // 将新的管理员信息存入session中 session.setAttribute("admin",admin); // 设置更新成功的信息 request.setAttribute("update_msg", "修改成功!" + String.format("%tT", new Date())); // 转发到adminUpdatePassword.jsp页面 request.getRequestDispatcher("/WEB-INF/admin/adminUpdatePassword.jsp").forward(request, response); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } } //package web.servlet.admin; // //import domain.Admin; //import domain.Student; //import service.AdminService; //import service.StudentService; //import service.impl.AdminServiceImpl; //import service.impl.StudentServiceImpl; // //import javax.servlet.ServletException; //import javax.servlet.annotation.WebServlet; //import javax.servlet.http.HttpServlet; //import javax.servlet.http.HttpServletRequest; //import javax.servlet.http.HttpServletResponse; //import javax.servlet.http.HttpSession; //import java.io.IOException; //import java.util.Date; ///** // * 管理员密码更新的Servlet处理类 // */ //@WebServlet("/adminPasswordUpdateServlet") //public class AdminPasswordUpdateServlet extends HttpServlet { // // 处理POST请求 // protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // // 设置请求编码为utf-8 // request.setCharacterEncoding("utf-8"); // // 获取当前会话 // HttpSession session = request.getSession(); // // 从会话中获取管理员对象 // Admin admin= (Admin) session.getAttribute("admin"); // // // 获取管理员ID // String adminid = admin.getA_id(); // // 获取新密码 // String newpassword = request.getParameter("admin-newpassword"); // // 获取确认新密码 // String ennewpassword = request.getParameter("admin-ennewpassword"); // // 定义正则表达式,用于验证密码格式 // String regex = "^[\\w]{3,12}$"; // // 判断新密码是否符合正则表达式 // boolean flag = newpassword.matches(regex); // // 如果不符合,则设置错误信息,并跳转到更新密码页面 // if (!flag) { // request.setAttribute("update_msg", "密码格式错误,重新提交!"+String.format("%tT",new Date())); // request.getRequestDispatcher("/WEB-INF/admin/adminUpdatePassword.jsp").forward(request, response); // // 如果新密码和确认密码不一致,则设置错误信息,并跳转到更新密码页面 // } else if (!newpassword.equals(ennewpassword)) { // request.setAttribute("update_msg", "密码确认错误,请重新提交!" + String.format("%tT", new Date())); // request.getRequestDispatcher("/WEB-INF/admin/adminUpdatePassword.jsp").forward(request, response); // // 如果新密码和确认密码一致,则继续执行 // } else { // // // 创建AdminService实例 // AdminService service= new AdminServiceImpl(); // // 调用updatePassword方法,更新密码 // service.updatePassword(adminid,newpassword); // // // 调用findAdminById方法,根据adminid查找管理员信息 // Admin newAdmin = service.findAdminById(admin); // // 将新的管理员信息赋值给admin // admin = newAdmin; // // 将新的管理员信息存入session中 // session.setAttribute("admin",admin); // // // 设置更新成功的信息 // request.setAttribute("update_msg", "修改成功!" + String.format("%tT", new Date())); // // 转发到adminUpdatePassword.jsp页面 // request.getRequestDispatcher("/WEB-INF/admin/adminUpdatePassword.jsp").forward(request, response); // } // // } // // protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // doPost(request,response); // } //}