package com.controller.frontweb; // 声明该Servlet所在的包名为com.controller.frontweb import com.dao.FrontWebDao; // 导入数据访问对象类FrontWebDao,用于执行数据库查询操作 import com.entity.Student; // 导入Student实体类,这里未使用到,属于无用导入(可删除) import com.entity.Teacher; // 导入Teacher实体类,用于封装教师相关信息 import com.utils.JDBCUtils; // 导入JDBC工具类,用于数据库连接的管理和资源关闭等操作 import javax.servlet.ServletException; // 导入Servlet异常类,用于处理Servlet运行时可能出现的异常 import javax.servlet.annotation.WebServlet; // 导入注解,用于将Servlet映射到特定的URL import javax.servlet.http.HttpServlet; // 导入HttpServlet类,所有基于HTTP协议的Servlet都继承自该类 import javax.servlet.http.HttpServletRequest; // 导入用于处理HTTP请求的类,通过它可以获取请求参数、请求头信息等 import javax.servlet.http.HttpServletResponse; // 导入用于处理HTTP响应的类,通过它可以设置响应内容、响应头信息等 import javax.servlet.http.HttpSession; // 导入HttpSession类,用于管理用户会话,存储用户相关信息 import java.io.IOException; // 导入用于处理I/O异常的类,如在读取或写入数据时可能发生的异常 import java.sql.ResultSet; // 导入用于处理数据库查询结果的类,用于获取查询到的数据 @WebServlet("/TeaInfoServlet") // 使用@WebServlet注解将该Servlet映射到URL路径为"/TeaInfoServlet" public class TeaInfoServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 重写父类HttpServlet的doGet方法,用于处理HTTP GET请求 // 设置请求的字符编码为UTF-8,防止请求参数中的中文乱码 req.setCharacterEncoding("utf-8"); // 设置响应的字符编码为UTF-8,防止响应内容中的中文乱码 resp.setCharacterEncoding("utf-8"); // 设置响应的内容类型为HTML,字符编码为UTF-8,告知客户端如何解析响应内容 resp.setContentType("text/html;charset=utf-8"); // 获取当前请求的会话对象 HttpSession session = req.getSession(); // 从会话中获取名为"tno"的属性值,并将其转换为String类型,该值表示教师编号 String tno = (String) session.getAttribute("tno"); // 构造SQL查询语句,用于从teacher表中查询指定教师编号(tno)的教师信息 String sql = "select * from teacher where tno = ?"; // 创建包含SQL语句参数的对象数组,参数为教师编号 Object[] objects = {tno}; // 调用FrontWebDao的qureyInfo方法执行SQL查询,并获取结果集 ResultSet resultSet = FrontWebDao.qureyInfo(sql, objects); // 创建一个Teacher对象,用于存储查询到的教师信息 Teacher teacher = new Teacher(); try { // 遍历结果集,将每一行数据封装到Teacher对象中 while (resultSet.next()){ // 设置教师编号 teacher.setTno(resultSet.getString("tno")); // 设置教师姓名 teacher.setTname(resultSet.getString("tname")); // 设置教师性别 teacher.setTsex(resultSet.getString("tsex")); // 设置教师年龄,将数据库中的整数类型值转换为int类型 teacher.setTage(resultSet.getInt("tage")); // 设置教师所在系部 teacher.setTdept(resultSet.getString("tdept")); // 设置教师电话号码 teacher.setTphone(resultSet.getString("tphone")); } } catch (Exception e) { // 捕获异常并打印异常堆栈信息,用于调试和错误排查 e.printStackTrace(); } finally { // 无论是否发生异常,都调用JDBCUtils的close方法关闭结果集,释放资源 JDBCUtils.close(resultSet); } // 将封装好的教师信息对象(teacher)设置为请求属性,以便在后续页面中使用 req.setAttribute("teacher", teacher); // 转发请求到指定的页面(/view/frontweb/teainfo.jsp),并传递请求和响应对象 req.getRequestDispatcher("/view/frontweb/teainfo.jsp").forward(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 重写父类HttpServlet的doPost方法,用于处理HTTP POST请求 // 直接调用doGet方法来处理POST请求,复用doGet方法中的业务逻辑 this.doGet(req, resp); } } ``` 上述代码是重复的,因此只注释了一份。如果你还需要对第二份做特殊处理,请告诉我。