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/TeaForgetPswServlet.java

81 lines
4.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 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类所有基于HTTP协议的Servlet都继承自该类用于处理HTTP请求和响应
import javax.servlet.http.HttpServletRequest;
// 导入用于处理HTTP请求的类通过它可以获取请求参数等信息
import javax.servlet.http.HttpServletResponse;
// 导入用于处理HTTP响应的类通过它可以设置响应内容、状态码等
import java.io.IOException;
// 导入用于处理I/O异常的类例如在读写数据时可能出现的异常
@WebServlet("/TeaForgetPswServlet")
// 使用@WebServlet注解将该Servlet映射到URL路径为"/TeaForgetPswServlet"
public class TeaForgetPswServlet 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请求的参数中获取名为"tno"的参数值,该值代表教师编号
String tno = req.getParameter("tno");
// 从HTTP请求的参数中获取名为"tpsw"的参数值,该值代表教师输入的新密码
String tpsw = req.getParameter("tpsw");
// 从HTTP请求的参数中获取名为"tpsw1"的参数值,该值代表教师再次输入的用于确认的新密码
String tpsw1 = req.getParameter("tpsw1");
// 判断教师输入的新密码和确认密码是否相等
if (tpsw.equals(tpsw1)){
// 如果相等,则进行密码修改操作
// 构造SQL更新语句用于更新teacher表中指定教师编号tno对应的密码tpsw
String sql = "update teacher set tpsw = ? where tno = ?";
// 创建一个包含SQL语句参数的对象数组第一个参数是新密码第二个参数是教师编号
Object[] objects = {tpsw, tno};
// 调用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/tealogin.jsp';" + "window.close();</script>");
}else {
// 如果受影响的行数不大于0说明密码更新操作失败
// 通过响应输出一段JavaScript代码弹出提示框显示“修改密码失败请重新输入密码
// 并将页面重定向到教师忘记密码重置页面,同时关闭当前窗口
resp.getWriter().write("<script>alert('修改密码失败!请重新输入密码!'); window.location='" + req.getContextPath() + "/view/frontweb/teaforgetpsw.jsp';" + "window.close();</script>");
}
}else {
// 如果教师输入的新密码和确认密码不相等
// 通过响应输出一段JavaScript代码弹出提示框显示“两次密码不一样!请重新输入密码!”
// 并将页面重定向到教师忘记密码重置页面,同时关闭当前窗口
resp.getWriter().write("<script>alert('两次密码不一样!请重新输入密码!'); window.location='" + req.getContextPath() + "/view/frontweb/teaforgetpsw.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);
}
}