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.
lsepidemicsituationsystem8/src/com/controller/frontweb/StuForgetPswServlet.java

84 lines
5.0 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 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("<script>alert('修改密码成功!请登录!'); window.location='" + req.getContextPath() + "/view/frontweb/stulogin.jsp';" + "window.close();</script>");
}else {
// 如果受影响的行数不大于0说明密码更新操作失败
// 通过响应输出一段JavaScript代码弹出提示框显示“修改密码失败请重新输入密码
// 并将页面重定向到学生忘记密码重置页面,同时关闭当前窗口
resp.getWriter().write("<script>alert('修改密码失败!请重新输入密码!'); window.location='" + req.getContextPath() + "/view/frontweb/stuforgetpsw.jsp';" + "window.close();</script>");
}
}else {
// 如果用户输入的新密码和确认密码不相等
// 通过响应输出一段JavaScript代码弹出提示框显示“两次密码不一样!请重新输入密码!”
// 并将页面重定向到学生忘记密码重置页面,同时关闭当前窗口
resp.getWriter().write("<script>alert('两次密码不一样!请重新输入密码!'); window.location='" + req.getContextPath() + "/view/frontweb/stuforgetpsw.jsp';" + "window.close();</script>");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 重写父类HttpServlet的doPost方法用于处理HTTP POST请求
// 直接调用doGet方法来处理POST请求复用doGet方法中的业务逻辑
this.doGet(req, resp);
}
}