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/schoadmin/SchoQueryTeaByIdServlet1.java

160 lines
9.2 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.schoadmin;
// 声明该类所在的包为 com.controller.schoadmin用于组织和管理与学校管理员相关的控制器类
import com.dao.DeptAdminDao;
// 导入自定义的 DeptAdminDao 类,该类可能封装了与数据库交互的操作方法,用于执行数据库查询等操作
import com.entity.Teacher;
// 导入自定义的 Teacher 实体类,用于封装教师的相关信息,如教师编号、姓名、性别、年龄等
import com.utils.JDBCUtils;
// 导入自定义的 JDBCUtils 类,通常包含与 JDBCJava Database Connectivity相关的工具方法如获取数据库连接、关闭连接、处理结果集等
import javax.servlet.ServletException;
// 导入 Servlet 异常类,用于处理 Servlet 执行过程中可能出现的异常情况
import javax.servlet.annotation.WebServlet;
// 导入 WebServlet 注解,用于将一个普通的 Java 类标记为 Servlet并指定其访问路径
import javax.servlet.http.HttpServlet;
// 导入 HttpServlet 类,所有的 HTTP Servlet 都需要继承该类,并重写相应方法来处理 HTTP 请求
import javax.servlet.http.HttpServletRequest;
// 导入 HttpServletRequest 接口,用于封装客户端发送的 HTTP 请求信息,如请求参数、请求头、请求方法等
import javax.servlet.http.HttpServletResponse;
// 导入 HttpServletResponse 接口,用于封装服务器返回给客户端的 HTTP 响应信息,如响应状态码、响应头、响应内容等
import javax.servlet.http.HttpSession;
// 导入 HttpSession 接口,用于管理用户会话,存储用户在一次会话期间的相关信息,如用户登录状态、用户信息等
import java.io.IOException;
// 导入 IOException 类,用于处理输入输出操作中可能出现的异常情况,如网络传输异常等
import java.sql.ResultSet;
// 导入 ResultSet 接口,用于表示数据库查询结果集,通过该接口可以遍历查询结果中的每一行数据
@WebServlet("/SchoQueryTeaByIdServlet1")
// 使用 WebServlet 注解将当前类标记为一个 Servlet并指定其访问路径为 /SchoQueryTeaByIdServlet1客户端可通过该路径访问该 Servlet
public class SchoQueryTeaByIdServlet1 extends HttpServlet {
// 定义一个公共类 SchoQueryTeaByIdServlet1继承自 HttpServlet 类,用于处理 HTTP 请求
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 重写 HttpServlet 类的 doGet 方法,用于处理客户端发送的 GET 请求
// req 是 HttpServletRequest 对象封装了客户端的请求信息resp 是 HttpServletResponse 对象,用于向客户端发送响应信息
req.setCharacterEncoding("utf-8");
// 设置请求的字符编码为 UTF-8确保能正确处理包含中文等特殊字符的请求参数
resp.setCharacterEncoding("utf-8");
// 设置响应的字符编码为 UTF-8确保能正确输出包含中文等特殊字符的响应内容
resp.setContentType("text/html;charset=utf-8");
// 设置响应的内容类型为 text/html并指定字符编码为 UTF-8告知客户端响应的内容是 HTML 格式,且使用 UTF-8 编码
String tno = req.getParameter("tno");
// 从请求中获取名为 "tno" 的参数值,该参数可能表示教师编号,将其存储在字符串变量 tno 中
//获取登录时的session会话对象
HttpSession session = req.getSession();
// 获取当前请求对应的 HttpSession 对象,如果会话不存在则会创建一个新的会话
// String userName = (String) session.getAttribute("userName");
// 注释掉的代码,原本是从会话中获取名为 "userName" 的属性值,并将其转换为字符串类型存储在 userName 变量中
// String sno = (String) session.getAttribute("sno");
// 注释掉的代码,原本是从会话中获取名为 "sno" 的属性值,并将其转换为字符串类型存储在 sno 变量中
String belong = (String) session.getAttribute("belong");
// 从会话中获取名为 "belong" 的属性值,并将其转换为字符串类型存储在 belong 变量中,该属性可能表示用户所属的部门或角色等信息
System.out.println(belong);
// 将 belong 变量的值输出到控制台,用于调试目的
String sql = null;
// 声明一个字符串变量 sql用于存储 SQL 查询语句,初始值为 null
Object[] objects = {tno};
// 创建一个 Object 类型的数组 objects将 tno 作为数组元素,用于后续的 SQL 查询参数传递
System.out.println(tno);
// 将 tno 变量的值输出到控制台,用于调试目的
//查询是否存在此人
sql = "select count(*) as num from teacher where tno = ?";
// 定义一个 SQL 查询语句,用于查询教师表中教师编号为 tno 的记录数量,并将结果列命名为 num
int count = DeptAdminDao.findTotalCount(sql, objects);
// 调用 DeptAdminDao 类的 findTotalCount 方法,传入 SQL 查询语句和查询参数数组,执行查询并返回满足条件的记录数量,将结果存储在整数变量 count 中
if (count > 0) { //有则继续操作
// 如果查询到的记录数量大于 0说明存在该教师编号对应的教师记录则继续后续操作
sql = "select * from teacher where tno = ?";
// 定义一个新的 SQL 查询语句,用于查询教师表中教师编号为 tno 的教师的详细信息
ResultSet resultSet = DeptAdminDao.qureyInfo(sql, objects);
// 调用 DeptAdminDao 类的 qureyInfo 方法,传入 SQL 查询语句和查询参数数组,执行查询并返回结果集,将结果存储在 ResultSet 对象 resultSet 中
Teacher teacher = new Teacher();
// 创建一个 Teacher 类的对象 teacher用于存储查询到的教师信息
try {
while (resultSet.next()){
// 遍历结果集,每次循环处理结果集中的一行数据
teacher.setTno(resultSet.getString("tno"));
// 从结果集中获取名为 "tno" 的列的值,并将其设置到 teacher 对象的 tno 属性中
teacher.setTname(resultSet.getString("tname"));
// 从结果集中获取名为 "tname" 的列的值,并将其设置到 teacher 对象的 tname 属性中
teacher.setTsex(resultSet.getString("tsex"));
// 从结果集中获取名为 "tsex" 的列的值,并将其设置到 teacher 对象的 tsex 属性中
teacher.setTage(resultSet.getInt("tage"));
// 从结果集中获取名为 "tage" 的列的值,并将其设置到 teacher 对象的 tage 属性中
teacher.setTdept(resultSet.getString("tdept"));
// 从结果集中获取名为 "tdept" 的列的值,并将其设置到 teacher 对象的 tdept 属性中
teacher.setTphone(resultSet.getString("tphone"));
// 从结果集中获取名为 "tphone" 的列的值,并将其设置到 teacher 对象的 tphone 属性中
teacher.setTpsw(resultSet.getString("tpsw"));
// 从结果集中获取名为 "tpsw" 的列的值,并将其设置到 teacher 对象的 tpsw 属性中
}
} catch (Exception e) {
e.printStackTrace();
// 捕获并处理可能出现的异常,将异常的堆栈跟踪信息输出到控制台,方便调试
}finally {
JDBCUtils.close(resultSet);
// 无论是否发生异常,最终都调用 JDBCUtils 类的 close 方法关闭结果集,释放相关资源
}
System.out.println(teacher.getTsex());
// 将 teacher 对象的 tsex 属性值输出到控制台,用于调试目的
req.setAttribute("teacher", teacher);
// 将 teacher 对象作为属性添加到请求对象中,属性名为 "teacher",以便在后续的 JSP 页面中可以获取该对象
req.getRequestDispatcher("/view/schoadmin/altertea.jsp").forward(req, resp);
// 获取请求转发器,将请求和响应对象转发到 /view/schoadmin/altertea.jsp 页面,让该页面继续处理请求并显示教师的详细信息用于修改
}else {
req.getRequestDispatcher("/view/alluse/noexistdataofalter.jsp").forward(req, resp);
// 如果查询到的记录数量为 0说明不存在该教师编号对应的教师记录则将请求和响应对象转发到 /view/alluse/noexistdataofalter.jsp 页面,提示用户没有相关数据可修改
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 重写 HttpServlet 类的 doPost 方法,用于处理客户端发送的 POST 请求
doGet(req, resp);
// 调用 doGet 方法处理 POST 请求,即对于该 ServletPOST 请求和 GET 请求的处理逻辑相同
}
}