From b89a8e12685c1534413903cc7c65f16910eebbb4 Mon Sep 17 00:00:00 2001
From: hql <3239791920@qq.com>
Date: Mon, 21 Apr 2025 16:37:29 +0800
Subject: [PATCH] Update README.md
---
.idea/workspace.xml | 15 +++++--
.../deptadmin/DeptDeleteStuPunchServlet.java | 42 +++++++++++--------
2 files changed, 35 insertions(+), 22 deletions(-)
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index a334875..86893ca 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -10,8 +10,7 @@
-
-
+
@@ -362,7 +361,7 @@
-
+
@@ -500,7 +499,15 @@
1745223742348
-
+
+
+ 1745224222647
+
+
+
+ 1745224222647
+
+
diff --git a/src/com/controller/deptadmin/DeptDeleteStuPunchServlet.java b/src/com/controller/deptadmin/DeptDeleteStuPunchServlet.java
index c9d4f15..47dcbca 100644
--- a/src/com/controller/deptadmin/DeptDeleteStuPunchServlet.java
+++ b/src/com/controller/deptadmin/DeptDeleteStuPunchServlet.java
@@ -1,35 +1,38 @@
-package com.controller.deptadmin;
+package com.controller.deptadmin;//定义了当前类所在的 Java 包 com.controller.deptadmin,表示这是一个与部门管理员相关的控制器类。
-import com.dao.DeptAdminDao;
+import com.dao.DeptAdminDao;//导入 DeptAdminDao 类,该类通常用于执行数据库操作(如查询、更新、删除等)。
-import javax.servlet.ServletException;
-import javax.servlet.annotation.WebServlet;
+import javax.servlet.ServletException;//ServletException:用于处理 Servlet 异常。
+import javax.servlet.annotation.WebServlet;//WebServlet:注解,用于将类声明为 Servlet,并将其与特定的 URL 路径映射。
+
+//HttpServlet、HttpServletRequest 和 HttpServletResponse:用于处理 HTTP 请求和响应。
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
+import java.io.IOException;//IOException:用于处理输入输出异常。
import java.text.SimpleDateFormat;
import java.util.Date;
-@WebServlet("/DeptDeleteStuPunchServlet")
-public class DeptDeleteStuPunchServlet extends HttpServlet {
+@WebServlet("/DeptDeleteStuPunchServlet")//使用 @WebServlet 注解,将这个 Servlet 映射到 URL 路径 /DeptDeleteStuPunchServlet,即当访问该路径时,Servlet 会被触发。
+public class DeptDeleteStuPunchServlet extends HttpServlet {//定义了一个继承自 HttpServlet 的类 DeptDeleteStuPunchServlet,它处理 HTTP 请求,执行删除学生考勤记录的操作。
- @Override
+ @Override//重写 doGet 方法,用于处理 HTTP GET 请求。
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- req.setCharacterEncoding("utf-8");
- resp.setCharacterEncoding("utf-8");
- resp.setContentType("text/html;charset=utf-8");
+ req.setCharacterEncoding("utf-8");//req.setCharacterEncoding("utf-8"):设置请求的字符编码为 UTF-8。
+ resp.setCharacterEncoding("utf-8");//resp.setCharacterEncoding("utf-8"):设置响应的字符编码为 UTF-8。
+ resp.setContentType("text/html;charset=utf-8");//resp.setContentType("text/html;charset=utf-8"):设置响应的内容类型为 HTML,并指定字符集为 UTF-8。
- //获取请求参数
+ //从请求中获取参数 snodate,这个参数包含了学生学号和考勤日期,通常以逗号分隔。
String snodate = req.getParameter("snodate");
- System.out.println(snodate);
+ System.out.println(snodate);//输出获取到的 snodate 参数,便于调试时查看该参数的值。
//分离两个参数,用日期和学号来删除
- String[] params = snodate.split(",");
+ String[] params = snodate.split(",");//将 snodate 字符串按逗号分隔,得到学号和考勤日期两个部分,分别存储在 sno(学号)和 spunchdate(考勤日期)变量中。
String sno = params[0];
String spunchdate = params[1];
+ //输出分离后的学号和考勤日期,便于调试时查看它们的值。
System.out.println(sno);
System.out.println(spunchdate);
@@ -39,26 +42,29 @@ public class DeptDeleteStuPunchServlet extends HttpServlet {
// SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
// Date spunchdate1 = ft.format(spunchdate);
+ //初始化一个 SQL 查询语句的变量 sql,并创建一个 Object[] 数组,将学号 sno 和考勤日期 spunchdate 存放到数组中。这个数组将作为 SQL 查询的参数。
String sql = null;
Object[] objects = {sno, spunchdate};
//查询是否存在此人
- sql = "select count(*) as num from stupunchin where sno = ? and spunchdate = ?";
+ sql = "select count(*) as num from stupunchin where sno = ? and spunchdate = ?";//构建一个 SQL 查询语句,查询 stupunchin 表中是否存在该学号和考勤日期的记录。调用 DeptAdminDao.findTotalCount 方法执行查询并返回计数值 count。
int count = DeptAdminDao.findTotalCount(sql, objects);
- if (count > 0) { //有则继续操作
- //删除stupunchin中的该信息
+ if (count > 0) { //如果查询结果中存在记录(即 count 大于 0),则继续执行删除操作。
+ //构建一个 SQL 删除语句,从 stupunchin 表中删除指定学号和考勤日期的记录。调用 DeptAdminDao.executeUpdate 方法执行删除操作,并输出受影响的行数 num1,以确认是否成功删除。
sql = "delete from stupunchin where sno = ? and spunchdate = ?";
int num1 = DeptAdminDao.executeUpdate(sql, objects);
System.out.println(num1);
+ //如果删除成功,使用 RequestDispatcher 将请求转发到 /DeptQueryStuPunchByPageServlet,并传递一些分页和查询参数(如当前页、每页行数、学生姓名、班级、考勤日期等)。这将使用户看到更新后的学生考勤记录列表。
req.getRequestDispatcher("/DeptQueryStuPunchByPageServlet?currentPage=1&rows=7&sname=&sclass=&spunchdate=").forward(req, resp);
}else {
- req.getRequestDispatcher("/view/alluse/noexistdataofdelete.jsp").forward(req, resp);
+ req.getRequestDispatcher("/view/alluse/noexistdataofdelete.jsp").forward(req, resp);//如果查询结果中没有找到该记录(即 count 为 0),则表示该学号和考勤日期的记录不存在,使用 RequestDispatcher 转发请求到一个页面(noexistdataofdelete.jsp),提示用户该数据不存在。
}
}
+ //重写 doPost 方法。因为该 Servlet 处理删除操作时是基于 GET 请求的,所以 doPost 方法直接调用 doGet 方法,这样无论是 GET 请求还是 POST 请求都会执行相同的逻辑。
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);