You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
text/src/web/servlet/admin/AdminPasswordUpdateServlet....

152 lines
6.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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);
// }
//}