zoukankan      html  css  js  c++  java
  • 使用三层架构完成商品列表的显示

    1 准备工作

    1 数据库的准备

    查看:使用jsp完成商品列表的动态显示

    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">商城价:&yen;${product.shop_price }</font>
        </p>
    </div>
        
    </c:forEach>
  • 相关阅读:
    rsync文件备份同步
    程序员的家!我终于拥有自己的blog了!!!
    使用APMServ服务配置如何进行Wordpress本地伪静态设置
    清理Windows.edb文件释放C盘空间(原创)
    不知道按到什么键了,代码前面出现了省略号,使用Ctrl+E+S恢复
    (转)c/c++资源(源码,开发工具)
    EditPlus自动换行
    不用外部软件,直接对文件批量重命名(转)
    C# 实现自定义处理窗体按键(整理)
    C# 控件名称缩写介绍(转)
  • 原文地址:https://www.cnblogs.com/jepson6669/p/8336549.html
Copyright © 2011-2022 走看看