|
|
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 请求,即对于该 Servlet,POST 请求和 GET 请求的处理逻辑相同,
|
|
|
// 这样可以避免重复编写相似的代码,提高代码的复用性和可维护性。
|
|
|
}
|
|
|
} |