package com.tedu.jt.web.backend; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.tedu.jt.utils.JDBCUtils; /** * 查询所有商品信息带到jsp页面进行展示 */ public class ProdListServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1.查询所有商品信息 List<Product> list = findProdList(); System.out.println("list: "+list); // 2.将List集合存入request域中 request.setAttribute("list", list); /* * 3.通过转发将List集合带到商品列表 (prod_list.jsp)页面进行展示 */ request.getRequestDispatcher( "/backend/prod_list.jsp") .forward(request, response); } /** * 用于查询所有的商品信息 * * @return List<Product>集合 */ private List<Product> findProdList() { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // 1.获取连接(从连接池中获取一个连接对象) conn = JDBCUtils.getConn(); // 2.声明sql语句 String sql = "select * from product"; // 3.获取传输器 ps = conn.prepareStatement(sql); // 4.执行sql rs = ps.executeQuery(); // 5.声明List集合用于存储所有的商品信息 List<Product> list = new ArrayList<Product>(); // 6.遍历结果集, 将结果存入List集合中 while(rs.next()){ //7.声明Product对象用于封装商品信息 Product prod = new Product(); prod.setId(rs.getInt("id")); prod.setName(rs.getString("name")); prod.setCategory( rs.getString("category")); prod.setPrice(rs.getDouble("price")); prod.setPnum(rs.getInt("pnum")); prod.setDescription( rs.getString("description")); //8.将Product对象存入List集合 list.add(prod); } return list; } catch (Exception e) { System.out.println( "商品信息查询失败!!"); e.printStackTrace(); throw new RuntimeException( "商品信息查询失败!"); } finally { JDBCUtils.close(conn, ps, rs); } } protected void doPost( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } |
|