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