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/stu/StuQueryInfoServlet.java

129 lines
5.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.stu;
// 声明该Servlet所在的包名为com.controller.stu
import com.dao.StuDao;
// 导入学生数据访问对象类StuDao用于执行数据库查询操作
import com.entity.Student;
// 导入学生实体类,用于封装学生相关信息
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;
// 导入用于处理数据库查询结果的类,用于获取查询到的数据
import java.util.ArrayList;
// 导入ArrayList类用于存储多个学生对象
@WebServlet("/StuQueryInfoServlet")
// 使用@WebServlet注解将该Servlet映射到URL路径为"/StuQueryInfoServlet"
public class StuQueryInfoServlet 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();
// 从会话中获取名为"userName"的属性值并将其转换为String类型
String userName = (String) session.getAttribute("userName");
// 从会话中获取名为"sno"的属性值并将其转换为String类型该值表示学生编号
String sno = (String) session.getAttribute("sno");
// 将userName打印到控制台用于调试
System.out.println(userName);
// 将sno打印到控制台用于调试
System.out.println(sno);
// 打印一个字符串到控制台,可能是用于调试的无意义字符串
System.out.println("hdghghjg");
// 构造SQL查询语句用于从student表中查询指定学生编号sno的学生信息
String sql = "select * from student where sno = ?";
// 创建包含SQL语句参数的对象数组参数为学生编号
Object[] objects = {sno};
// 调用StuDao的qureyInfo方法执行SQL查询并获取结果集
ResultSet resultSet = StuDao.qureyInfo(sql, objects);
// 创建一个ArrayList对象用于存储查询到的学生对象
ArrayList<Student> stuArrayList = new ArrayList<Student>();
try {
// 遍历结果集将每一行数据封装到Student对象中并添加到ArrayList中
while (resultSet.next()){
// 创建一个新的Student对象
Student student = new Student();
// 设置学生编号
student.setSno(resultSet.getString("sno"));
// 设置学生姓名
student.setSname(resultSet.getString("sname"));
// 设置学生性别
student.setSsex(resultSet.getString("ssex"));
// 设置学生年龄将数据库中的整数类型值转换为int类型
student.setSage(resultSet.getInt("sage"));
// 设置学生班级
student.setSclass(resultSet.getString("sclass"));
// 设置学生专业
student.setSpecialty(resultSet.getString("specialty"));
// 设置学生所在系部
student.setSdept(resultSet.getString("sdept"));
// 设置学生电话号码
student.setSphone(resultSet.getString("sphone"));
// 设置学生密码
student.setSpsw(resultSet.getString("spsw"));
// 将封装好的学生对象添加到ArrayList中
stuArrayList.add(student);
}
} catch (Exception e) {
// 捕获异常并打印异常堆栈信息,用于调试和错误排查
e.printStackTrace();
} finally {
// 无论是否发生异常都调用JDBCUtils的close方法关闭结果集释放资源
JDBCUtils.close(resultSet);
}
// 将存储学生对象的ArrayList打印到控制台用于调试
System.out.println(stuArrayList);
// 将存储学生对象的ArrayList设置为请求属性以便在后续页面中使用
req.setAttribute("stuArrayList", stuArrayList);
// 转发请求到指定的页面(/view/stu/stuinfo.jsp并传递请求和响应对象
req.getRequestDispatcher("/view/stu/stuinfo.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 重写父类HttpServlet的doPost方法用于处理HTTP POST请求
// 直接调用doGet方法来处理POST请求复用doGet方法中的业务逻辑
doGet(req, resp);
}
}