package com.controller.frontweb; // 声明该Servlet所在的包名为com.controller.frontweb import com.dao.FrontWebDao; // 导入数据访问对象类FrontWebDao,用于执行数据库操作,如更新密码的SQL语句 import javax.servlet.ServletException; // 导入Servlet异常类,用于处理Servlet在运行过程中可能抛出的异常 import javax.servlet.annotation.WebServlet; // 导入注解,用于将Servlet映射到特定的URL import javax.servlet.http.HttpServlet; // 导入HttpServlet类,这是编写Servlet时的基类,用于处理HTTP请求和响应 import javax.servlet.http.HttpServletRequest; // 导入用于处理HTTP请求的类,可获取请求参数等信息 import javax.servlet.http.HttpServletResponse; // 导入用于处理HTTP响应的类,可设置响应内容、状态码等 import javax.servlet.http.HttpSession; // 导入HttpSession类,用于管理用户会话,存储用户相关信息(虽然此处未使用会话存储相关信息,但导入了该类) import java.io.IOException; // 导入用于处理I/O异常的类,例如在读写数据时可能出现的异常 @WebServlet("/StuForgetPswServlet") // 使用@WebServlet注解将该Servlet映射到URL路径为"/StuForgetPswServlet" public class StuForgetPswServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 重写父类HttpServlet的doGet方法,用于处理HTTP GET请求 // 设置请求的字符编码为UTF-8,防止请求参数中的中文乱码 req.setCharacterEncoding("utf-8"); // 设置响应的字符编码为UTF-8,防止响应内容中的中文乱码 resp.setCharacterEncoding("utf-8"); // 设置响应的内容类型为HTML格式,且字符编码为UTF-8,告知客户端如何解析响应内容 resp.setContentType("text/html;charset=utf-8"); // 从HTTP请求的参数中获取名为"sno"的参数值,该值代表学生编号 String sno = req.getParameter("sno"); // 从HTTP请求的参数中获取名为"spsw"的参数值,该值代表学生输入的新密码 String spsw = req.getParameter("spsw"); // 从HTTP请求的参数中获取名为"spsw1"的参数值,该值代表学生再次输入的用于确认的新密码 String spsw1 = req.getParameter("spsw1"); // 判断用户输入的新密码和确认密码是否相等 if (spsw.equals(spsw1)){ // 如果相等,则进行密码修改操作 // 构造SQL更新语句,用于更新student表中指定学生编号(sno)对应的密码(spsw) String sql = "update student set spsw = ? where sno = ?"; // 创建一个包含SQL语句参数的对象数组,第一个参数是新密码,第二个参数是学生编号 Object[] objects = {spsw, sno}; // 调用FrontWebDao类中的executeUpdate方法执行SQL更新语句,并获取受影响的行数 int num = FrontWebDao.executeUpdate(sql, objects); if (num > 0){ // 如果受影响的行数大于0,说明密码更新操作成功 // 通过响应输出一段JavaScript代码,弹出提示框显示“修改密码成功!请登录!” // 并将页面重定向到学生登录页面,同时关闭当前窗口 resp.getWriter().write(""); }else { // 如果受影响的行数不大于0,说明密码更新操作失败 // 通过响应输出一段JavaScript代码,弹出提示框显示“修改密码失败!请重新输入密码!” // 并将页面重定向到学生忘记密码重置页面,同时关闭当前窗口 resp.getWriter().write(""); } }else { // 如果用户输入的新密码和确认密码不相等 // 通过响应输出一段JavaScript代码,弹出提示框显示“两次密码不一样!请重新输入密码!” // 并将页面重定向到学生忘记密码重置页面,同时关闭当前窗口 resp.getWriter().write(""); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 重写父类HttpServlet的doPost方法,用于处理HTTP POST请求 // 直接调用doGet方法来处理POST请求,复用doGet方法中的业务逻辑 this.doGet(req, resp); } }