|
|
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);
|
|
|
}
|
|
|
}
|
|
|
``` 上述代码是重复的,因此只注释了一份。如果你还需要对第二份做特殊处理,请告诉我。 |