|
|
package com.controller.schoadmin;
|
|
|
// 声明该类所在的包为 com.controller.schoadmin,用于组织和管理与学校管理员相关的控制器类
|
|
|
|
|
|
import com.dao.DeptAdminDao;
|
|
|
// 导入自定义的 DeptAdminDao 类,该类可能封装了与数据库交互的操作方法,用于执行数据库查询等操作
|
|
|
|
|
|
import com.entity.Teacher;
|
|
|
// 导入自定义的 Teacher 实体类,用于封装教师的相关信息,如教师编号、姓名、性别、年龄等
|
|
|
|
|
|
import com.utils.JDBCUtils;
|
|
|
// 导入自定义的 JDBCUtils 类,通常包含与 JDBC(Java 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 请求,即对于该 Servlet,POST 请求和 GET 请求的处理逻辑相同
|
|
|
}
|
|
|
} |