|
|
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);
|
|
|
}
|
|
|
} |