|
|
package com.controller.deptadmin;
|
|
|
// 声明该类所在的包为 com.controller.deptadmin,包是 Java 中组织代码的一种方式,
|
|
|
// 可以将相关的类放在同一个包下,便于管理和维护,避免命名冲突。
|
|
|
|
|
|
import com.dao.DeptAdminDao;
|
|
|
// 导入自定义的 DeptAdminDao 类,该类通常封装了与数据库交互的方法,
|
|
|
// 如查询、插入、更新和删除等操作,在本 Servlet 中会使用这些方法来操作数据库。
|
|
|
|
|
|
import javax.servlet.ServletException;
|
|
|
// 导入 Servlet 异常类,当 Servlet 在执行过程中出现异常时,会抛出该异常,
|
|
|
// 用于统一处理 Servlet 相关的异常情况。
|
|
|
|
|
|
import javax.servlet.annotation.WebServlet;
|
|
|
// 导入 WebServlet 注解,这是 Java Servlet 3.0 引入的注解,
|
|
|
// 用于将一个普通的 Java 类标记为 Servlet,并指定其访问路径。
|
|
|
|
|
|
import javax.servlet.http.HttpServlet;
|
|
|
// 导入 HttpServlet 类,它是所有 Servlet 类的基类,
|
|
|
// 提供了处理 HTTP 请求的基本方法和结构,我们的类继承它以实现 Servlet 功能。
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
// 导入 HttpServletRequest 类,用于封装客户端发送的 HTTP 请求信息,
|
|
|
// 包括请求参数、请求头、请求方法等,方便在 Servlet 中获取和处理这些信息。
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
// 导入 HttpServletResponse 类,用于封装服务器返回给客户端的 HTTP 响应信息,
|
|
|
// 如响应状态码、响应头、响应体等,可以对响应进行设置和输出。
|
|
|
|
|
|
import java.io.IOException;
|
|
|
// 导入输入输出异常类,当进行输入输出操作(如网络传输、文件读写等)时,
|
|
|
// 可能会出现异常,使用该类进行异常处理。
|
|
|
|
|
|
@WebServlet("/DeptDeleteTeaServlet")
|
|
|
// 使用 WebServlet 注解将该类标记为一个 Servlet,并指定其访问路径为 /DeptDeleteTeaServlet,
|
|
|
// 客户端可以通过该路径向此 Servlet 发送请求。
|
|
|
|
|
|
public class DeptDeleteTeaServlet extends HttpServlet {
|
|
|
// 定义一个名为 DeptDeleteTeaServlet 的类,继承自 HttpServlet 类,
|
|
|
// 使其成为一个可以处理 HTTP 请求的 Servlet。
|
|
|
|
|
|
@Override
|
|
|
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
|
|
// 重写 HttpServlet 类的 doGet 方法,用于处理客户端发送的 HTTP GET 请求。
|
|
|
// 该方法接收 HttpServletRequest 和 HttpServletResponse 对象作为参数,
|
|
|
// 并可能抛出 ServletException 和 IOException 异常。
|
|
|
|
|
|
req.setCharacterEncoding("utf-8");
|
|
|
// 设置请求的字符编码为 UTF-8,确保能够正确处理包含中文等特殊字符的请求参数。
|
|
|
|
|
|
resp.setCharacterEncoding("utf-8");
|
|
|
// 设置响应的字符编码为 UTF-8,保证返回给客户端的内容能正确显示中文等特殊字符。
|
|
|
|
|
|
resp.setContentType("text/html;charset=utf-8");
|
|
|
// 设置响应的内容类型为 text/html,并指定字符编码为 UTF-8,
|
|
|
// 告知客户端返回的是 HTML 格式的内容。
|
|
|
|
|
|
String tno = req.getParameter("tno");
|
|
|
// 从 HTTP 请求中获取名为 "tno" 的参数值,并将其赋值给字符串变量 tno,
|
|
|
// 这里 tno 可能代表教师编号。
|
|
|
|
|
|
System.out.println(tno);
|
|
|
// 在控制台打印 tno 的值,用于调试,方便开发人员查看接收到的参数。
|
|
|
|
|
|
String sql = null;
|
|
|
// 声明一个字符串变量 sql,用于存储 SQL 语句,初始值设为 null。
|
|
|
|
|
|
Object[] objects = {tno};
|
|
|
// 创建一个 Object 类型的数组 objects,将 tno 作为唯一元素存储在数组中,
|
|
|
// 后续会将该数组作为参数传递给数据库操作方法。
|
|
|
|
|
|
// 查询是否存在此人
|
|
|
sql = "select count(*) as num from teacher where tno = ?";
|
|
|
// 定义一个 SQL 查询语句,用于查询 teacher 表中教师编号为 tno 的记录数量,
|
|
|
// 使用占位符 ? 表示参数,可防止 SQL 注入。
|
|
|
|
|
|
int count = DeptAdminDao.findTotalCount(sql, objects);
|
|
|
// 调用 DeptAdminDao 类的 findTotalCount 方法,执行上述 SQL 查询语句,
|
|
|
// 并将查询结果(符合条件的记录数量)赋值给整数变量 count。
|
|
|
|
|
|
if (count > 0) { // 有则继续操作
|
|
|
// 如果查询到的记录数量大于 0,说明数据库中存在该教师的记录。
|
|
|
|
|
|
// 删除 teapunchin 中的该教师信息
|
|
|
sql = "delete from teapunchin where tno = ?";
|
|
|
// 定义一个 SQL 删除语句,用于删除 teapunchin 表中教师编号为 tno 的记录。
|
|
|
|
|
|
int num1 = DeptAdminDao.executeUpdate(sql, objects);
|
|
|
// 调用 DeptAdminDao 类的 executeUpdate 方法,执行上述 SQL 删除语句,
|
|
|
// 并将受影响的记录数量赋值给整数变量 num1。
|
|
|
|
|
|
System.out.println(num1);
|
|
|
// 在控制台打印受影响的记录数量,用于调试,查看删除操作是否成功。
|
|
|
|
|
|
// 删除 teacher 表中该教师信息
|
|
|
sql = "delete from teacher where tno = ?";
|
|
|
// 定义一个 SQL 删除语句,用于删除 teacher 表中教师编号为 tno 的记录。
|
|
|
|
|
|
int num2 = DeptAdminDao.executeUpdate(sql, objects);
|
|
|
// 调用 DeptAdminDao 类的 executeUpdate 方法,执行上述 SQL 删除语句,
|
|
|
// 并将受影响的记录数量赋值给整数变量 num2。
|
|
|
|
|
|
System.out.println(num2);
|
|
|
// 在控制台打印受影响的记录数量,用于调试,查看删除操作是否成功。
|
|
|
|
|
|
req.getRequestDispatcher("/DeptQueryTeaByPageServlet?currentPage=1&rows=7&tno=&tname=&tsex=").forward(req, resp);
|
|
|
// 将请求转发到 /DeptQueryTeaByPageServlet 页面,并传递相应的参数,
|
|
|
// 用于重新查询教师信息并显示在页面上,实现页面刷新。
|
|
|
} else {
|
|
|
req.getRequestDispatcher("/view/alluse/noexistdataofdelete.jsp").forward(req, resp);
|
|
|
// 如果查询到的记录数量为 0,说明数据库中不存在该教师的记录,
|
|
|
// 将请求转发到 /view/alluse/noexistdataofdelete.jsp 页面,提示用户无数据可删除。
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
|
|
// 重写 HttpServlet 类的 doPost 方法,用于处理客户端发送的 HTTP POST 请求。
|
|
|
|
|
|
doGet(req, resp);
|
|
|
// 调用 doGet 方法处理 POST 请求,即对于该 Servlet,POST 请求和 GET 请求的处理逻辑相同。
|
|
|
}
|
|
|
} |