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