使用三层架构完成商品列表的显示
1 准备工作
1 数据库的准备
2 其它准备工作
1)搭建好三层架构
2)导入需要 jar 包
3)导入需要的工具类
4)导入 c3p0 连接池工具类
5)准备 javaBean 类 Product
6)所需要的页面
2 代码实现
1 web层ProductListServlet代码实现
package www.test.web; import java.io.IOException; import java.sql.SQLException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import www.test.domain.Product; import www.test.services.ProductListService; public class ProductListServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //传入数据到service层 ProductListService service = new ProductListService(); List<Product> productList =null; try { productList = service.findAllProduct(); } catch (SQLException e) { e.printStackTrace(); } for (Product product : productList) { System.out.println(product); } //全部商品的数据准备好了 转发给 jsp 进行数据的展示 request.setAttribute("productlist", productList); //转发到product_list.jsp页面 request.getRequestDispatcher("/product_list.jsp").forward(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
2 service层的ProductListService代码
package www.test.services; import java.sql.SQLException; import java.util.List; import www.test.dao.ProductDao; import www.test.domain.Product; public class ProductListService { //没有复杂业务 //传递请求到 dao 层 public List<Product> findAllProduct() throws SQLException { ProductDao dao = new ProductDao(); List<Product> productList = dao.finAllProduct(); return productList; } }
3 dao层ProductDao代码
package www.test.dao; import java.sql.SQLException; import java.util.List; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import www.test.domain.Product; import www.test.utils.C3P0Utils; public class ProductDao { public List<Product> finAllProduct() throws SQLException { QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource()); String sql = "select * from product"; List<Product> productList = qr.query(sql, new BeanListHandler<Product>(Product.class)); return productList; } }
4 product_list.jsp部分代码
<c:forEach items="${productlist }" var="product"> <div class="col-md-2" style="height: 250px"> <a href="product_info.htm" > <img src="${pageContext.request.contextPath }/${product.pimage}" width="170" height="170" style="display: inline-block;"> </a> <p> <a href="product_info.html" style='color: green'>${product.pname }</a> </p> <p> <font color="#FF0000">商城价:¥${product.shop_price }</font> </p> </div> </c:forEach>