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/frontweb/TeaInfoServlet.java

107 lines
4.9 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.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);
}
}
```