三層架構(gòu)主要體現(xiàn)三目錄結(jié)構(gòu):
image.png
ProductListServlet.java文件代碼:
package com.zys.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 org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import com.zys.domain.Product;
import com.zys.service.ProductService;
import com.zys.utils.DataSourceUtils;
public class ProductListServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//傳遞請(qǐng)求到service層
ProductService service = new ProductService();
List<Product> productList = null;
try {
productList = service.findAllProduct();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//全部的商品的數(shù)據(jù)準(zhǔn)備好了 轉(zhuǎn)發(fā)給jsp進(jìn)行數(shù)據(jù)的展示
request.setAttribute("productList", productList);
request.getRequestDispatcher("/product_list.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
ProductService.java文件代碼:
package com.zys.service;
import java.sql.SQLException;
import java.util.List;
import com.zys.dao.ProductDao;
import com.zys.domain.Product;
public class ProductService {
public List<Product> findAllProduct() throws SQLException {
// 沒有復(fù)雜業(yè)務(wù)
//傳遞請(qǐng)求到dao層
ProductDao dao = new ProductDao();
List<Product> productList = dao.findAllProduct();
return productList;
}
}
ProductDao.java文件代碼:
package com.zys.dao;
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import com.zys.domain.Product;
import com.zys.utils.DataSourceUtils;
public class ProductDao {
public List<Product> findAllProduct() throws SQLException {
// 操作數(shù)據(jù)庫
QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource());
String sql = "select * from product";
List<Product> productList = runner.query(sql, new BeanListHandler<Product>(Product.class));
return productList;
}
}
JSP頁面展示:以EL表達(dá)式與JSTL配合使用
<c:forEach items="${productList }" var="product">
<div class="col-md-2" style="height:250px">
<a href="productInfo?id=${product.pid }">
<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">商城價(jià):¥${product.shop_price }</font>
</p>
</div>
</c:forEach>