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/deptadmin/DeptDeleteTeaServlet1.java

170 lines
11 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.deptadmin;
// 声明该类所在的包为 com.controller.deptadmin包用于对相关类进行组织和管理方便代码的维护和查找
// 同时避免不同类之间的命名冲突,有助于构建清晰的项目结构。
import com.dao.DeptAdminDao;
// 导入自定义的 DeptAdminDao 类,这个类通常封装了与数据库交互的操作方法,
// 比如执行 SQL 查询语句、插入数据、更新数据以及删除数据等功能,后续代码会使用这些方法来操作数据库。
import javax.servlet.ServletException;
// 导入 Servlet 异常类,当 Servlet 在运行过程中出现错误或异常情况时,
// 如请求处理失败、资源加载错误等,会抛出 ServletException 异常,以便进行相应的异常处理。
import javax.servlet.annotation.WebServlet;
// 导入 WebServlet 注解,这是用于将一个普通的 Java 类标记为 Servlet 的注解,
// 通过该注解可以指定 Servlet 的访问路径,方便客户端通过 URL 来访问该 Servlet。
import javax.servlet.http.HttpServlet;
// 导入 HttpServlet 类,它是所有 Servlet 类的基类,提供了处理 HTTP 请求的基本框架和方法,
// 我们定义的 Servlet 类需要继承 HttpServlet 类才能具备处理 HTTP 请求的能力。
import javax.servlet.http.HttpServletRequest;
// 导入 HttpServletRequest 类,它用于封装客户端发送的 HTTP 请求信息,
// 包括请求参数、请求头、请求方法等内容Servlet 可以通过该类获取客户端的请求数据。
import javax.servlet.http.HttpServletResponse;
// 导入 HttpServletResponse 类,它用于封装服务器返回给客户端的 HTTP 响应信息,
// 如响应状态码、响应头、响应体等Servlet 可以通过该类设置并返回响应数据给客户端。
import javax.servlet.http.HttpSession;
// 导入 HttpSession 类,用于管理用户的会话状态,能够在用户的多次请求之间存储和共享数据,
// 例如用户的登录信息、购物车内容等。
import java.io.IOException;
// 导入输入输出异常类,当进行输入输出操作(如文件读写、网络传输等)时,如果出现错误,
// 会抛出 IOException 异常,以便进行异常处理和错误恢复。
@WebServlet("/DeptDeleteTeaServlet1")
// 使用 WebServlet 注解将 DeptDeleteTeaServlet1 类标记为一个 Servlet
// 并指定其访问路径为 /DeptDeleteTeaServlet1客户端可以通过这个路径向该 Servlet 发送请求。
public class DeptDeleteTeaServlet1 extends HttpServlet {
// 定义一个名为 DeptDeleteTeaServlet1 的类,继承自 HttpServlet 类,
// 使其成为一个可以处理 HTTP 请求的 Servlet能够响应客户端的 GET 和 POST 请求。
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 重写 HttpServlet 类的 doGet 方法,该方法用于处理客户端发送的 HTTP GET 请求。
// 方法接收 HttpServletRequest 对象 req 和 HttpServletResponse 对象 resp 作为参数,
// 并可能抛出 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 的值,用于调试目的,方便开发人员查看接收到的教师编号参数是否正确,
// 以便及时发现和解决问题。
//获取登录时的session会话对象
HttpSession session = req.getSession();
// 获取当前请求对应的 HttpSession 对象,如果会话不存在则会创建一个新的会话。
// 通过会话对象可以存储和获取用户在会话期间的相关信息,如用户的登录状态、权限等。
// String userName = (String) session.getAttribute("userName");
// 注释掉的代码,原本用于从会话中获取名为 "userName" 的属性值,
// 但在当前代码中未被使用,可能是根据实际需求进行了调整或暂时不需要该功能。
// String sno = (String) session.getAttribute("sno");
// 注释掉的代码,原本用于从会话中获取名为 "sno" 的属性值,
// 同样在当前代码中未被使用,可能是后续功能的预留或不再需要该属性值。
String belong = (String) session.getAttribute("belong");
// 从会话中获取名为 "belong" 的属性值,并将其赋值给字符串变量 belong
// 这里的 belong 可能代表教师所属的部门等信息,用于后续的数据库查询条件。
System.out.println(belong);
// 在控制台打印 belong 的值,用于调试目的,方便开发人员查看从会话中获取的部门信息是否正确,
// 帮助进行问题排查和代码调试。
String sql = null;
// 声明一个字符串变量 sql用于存储 SQL 语句,初始值设为 null
// 后续会根据业务需求动态构建和赋值 SQL 语句。
Object[] objects = {tno, belong};
// 创建一个 Object 类型的数组 objects将 tno 和 belong 作为元素存储在数组中,
// 这个数组将作为参数传递给数据库操作方法,用于绑定 SQL 语句中的占位符。
//查询是否存在此人
sql = "select count(*) as num from teacher where tno = ? and tdept = ?";
// 定义一个 SQL 查询语句,用于查询 teacher 表中教师编号为 tno 且所属部门为 belong通过 tdept 字段匹配)的记录数量。
// 使用占位符 ? 表示参数,这种方式可以提高 SQL 语句的安全性,防止 SQL 注入攻击。
int count = DeptAdminDao.findTotalCount(sql, objects);
// 调用 DeptAdminDao 类的 findTotalCount 方法,执行上述 SQL 查询语句,
// 并将查询结果(符合条件的记录数量)赋值给整数变量 count
// 用于判断数据库中是否存在符合条件的教师记录。
Object[] objects1 = {tno};
// 创建一个新的 Object 类型的数组 objects1只包含 tno 作为元素,
// 这个数组将用于后续的删除操作,作为 SQL 语句的参数。
if (count > 0) { //有则继续操作
// 如果查询到的记录数量 count 大于 0说明数据库中存在符合条件的教师记录
// 可以继续进行后续的删除操作。
//删除teapunchin中的该导游信息
sql = "delete from teapunchin where tno = ?";
// 定义一个 SQL 删除语句,用于删除 teapunchin 表中教师编号为 tno 的记录,
// 这里的 tno 作为删除条件,指定要删除的具体记录。
int num1 = DeptAdminDao.executeUpdate(sql, objects1);
// 调用 DeptAdminDao 类的 executeUpdate 方法,执行上述 SQL 删除语句,
// 并将受影响的记录数量赋值给整数变量 num1
// 用于判断删除操作是否成功以及影响的记录数量。
System.out.println(num1);
// 在控制台打印受影响的记录数量 num1用于调试目的
// 方便开发人员查看删除 teapunchin 表中记录的操作是否成功,
// 以及确认删除的记录数量是否符合预期。
//删除teacher表中该导游信息
sql = "delete from teacher where tno = ?";
// 定义一个 SQL 删除语句,用于删除 teacher 表中教师编号为 tno 的记录,
// 同样以 tno 作为删除条件,将该教师的记录从 teacher 表中移除。
int num2 = DeptAdminDao.executeUpdate(sql, objects1);
// 调用 DeptAdminDao 类的 executeUpdate 方法,执行上述 SQL 删除语句,
// 并将受影响的记录数量赋值给整数变量 num2
// 用于判断删除 teacher 表中记录的操作是否成功。
System.out.println(num2);
// 在控制台打印受影响的记录数量 num2用于调试目的
// 方便开发人员查看删除 teacher 表中记录的操作是否成功,
// 以及确认删除的记录数量是否符合预期。
req.getRequestDispatcher("/DeptQueryTeaByPageServlet?currentPage=1&rows=7&tno=&tname=&tsex=").forward(req, resp);
// 将请求转发到 /DeptQueryTeaByPageServlet 页面,并传递相应的参数,
// 当前页码 currentPage 为 1每页显示行数 rows 为 7教师编号 tno、教师姓名 tname、教师性别 tsex 为空。
// 这样在删除操作完成后,会跳转到查询教师信息的页面,展示更新后的教师列表。
} else {
req.getRequestDispatcher("/view/alluse/noexistdataofdelete.jsp").forward(req, resp);
// 如果查询到的记录数量 count 不大于 0即数据库中不存在符合条件的教师记录
// 则将请求转发到 /view/alluse/noexistdataofdelete.jsp 页面,
// 该页面用于提示用户没有可删除的数据,给用户一个明确的反馈。
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 重写 HttpServlet 类的 doPost 方法,该方法用于处理客户端发送的 HTTP POST 请求。
// 方法接收 HttpServletRequest 对象 req 和 HttpServletResponse 对象 resp 作为参数,
// 并可能抛出 ServletException 和 IOException 异常,以处理请求过程中可能出现的错误。
doGet(req, resp);
// 调用 doGet 方法处理 POST 请求,即对于该 ServletPOST 请求和 GET 请求的处理逻辑相同,
// 这样可以避免重复编写相似的代码,提高代码的复用性和可维护性。
}
}