From 3ba38e0c33000c6c1254ed613cb70b11a64a6d66 Mon Sep 17 00:00:00 2001 From: liyansheng <1761724207@qq.com> Date: Sat, 21 Dec 2024 13:54:25 +0800 Subject: [PATCH] =?UTF-8?q?add<=E8=B4=AD=E7=89=A9=E8=BD=A6=E5=88=97?= =?UTF-8?q?=E8=A1=A8>?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/example/controller/CartServlet.java | 52 +++++++++++++++++++ src/main/java/example/dao/CartDao.java | 37 +++++++++++++ src/main/java/example/model/Cart.java | 10 ++++ .../java/example/service/ICartService.java | 9 ++++ .../example/service/impl/CartServiceImpl.java | 18 +++++++ src/main/webapp/cart.jsp | 38 ++++++++++++++ src/main/webapp/index.jsp | 1 + 7 files changed, 165 insertions(+) create mode 100644 src/main/java/example/controller/CartServlet.java create mode 100644 src/main/java/example/dao/CartDao.java create mode 100644 src/main/java/example/model/Cart.java create mode 100644 src/main/java/example/service/ICartService.java create mode 100644 src/main/java/example/service/impl/CartServiceImpl.java create mode 100644 src/main/webapp/cart.jsp diff --git a/src/main/java/example/controller/CartServlet.java b/src/main/java/example/controller/CartServlet.java new file mode 100644 index 0000000..62b54a3 --- /dev/null +++ b/src/main/java/example/controller/CartServlet.java @@ -0,0 +1,52 @@ +package example.controller; + +import example.model.Computer; +import example.service.ICartService; +import example.service.impl.CartServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +@WebServlet("/cart") +public class CartServlet extends HttpServlet { + + ICartService cartService = new CartServiceImpl(); + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + String action = req.getParameter("action"); + switch (action){ + case "list": + try { + toCart(req, resp); + } catch (Exception e) { + throw new RuntimeException(e); + } + break; + case "add": + String id = req.getParameter("id"); + req.getSession().setAttribute("cart",id); + resp.sendRedirect("/cart"); + break; + case "remove": + String removeId = req.getParameter("id"); + req.getSession().removeAttribute(removeId); + resp.sendRedirect("/cart"); + break; + default: + req.getRequestDispatcher("/WEB-INF/jsp/cart.jsp").forward(req,resp); + break; + } + } + + private void toCart(HttpServletRequest req, HttpServletResponse resp) throws Exception { + List computers = cartService.myCart(16); + req.setAttribute("computers",computers); + req.getRequestDispatcher("cart.jsp").forward(req,resp); + } +} diff --git a/src/main/java/example/dao/CartDao.java b/src/main/java/example/dao/CartDao.java new file mode 100644 index 0000000..46b15b5 --- /dev/null +++ b/src/main/java/example/dao/CartDao.java @@ -0,0 +1,37 @@ +package example.dao; + +import example.model.Computer; +import example.utils.DBUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; + +import java.util.List; + +public class CartDao { + private final QueryRunner queryRunner = new QueryRunner(DBUtils.getDataSource()); + +// 加入购物车 + public int addCart(Integer user_id, Integer product_id) throws Exception { + String sql = "insert into cart(user_id, product_id) values(?,?)"; + return queryRunner.update(sql, user_id, product_id); + } +// 移除购物车 + public int deleteCart(Integer user_id, Integer product_id) throws Exception { + String sql = "delete from cart where user_id=? and product_id=?"; + return queryRunner.update(sql, user_id, product_id); + } +// 某用户的购物车 + public List getCart(Integer user_id) throws Exception { + String sql = "select\n" + + "\tc2.*\n" + + "from\n" + + "\tcart c\n" + + "left join computer c2 \n" + + "on\n" + + "\tc.product_id = c2.id\n" + + "where\n" + + "\tc.user_id = ?"; + return queryRunner.query(sql,new BeanListHandler<>(Computer.class),user_id); + } + +} diff --git a/src/main/java/example/model/Cart.java b/src/main/java/example/model/Cart.java new file mode 100644 index 0000000..404dbf7 --- /dev/null +++ b/src/main/java/example/model/Cart.java @@ -0,0 +1,10 @@ +package example.model; + +public class Cart { + private Integer id; + + private Integer userId; + + private Integer productId; + +} diff --git a/src/main/java/example/service/ICartService.java b/src/main/java/example/service/ICartService.java new file mode 100644 index 0000000..07ae7e9 --- /dev/null +++ b/src/main/java/example/service/ICartService.java @@ -0,0 +1,9 @@ +package example.service; + +import example.model.Computer; + +import java.util.List; + +public interface ICartService { + List myCart(Integer userId) throws Exception; +} diff --git a/src/main/java/example/service/impl/CartServiceImpl.java b/src/main/java/example/service/impl/CartServiceImpl.java new file mode 100644 index 0000000..56bd571 --- /dev/null +++ b/src/main/java/example/service/impl/CartServiceImpl.java @@ -0,0 +1,18 @@ +package example.service.impl; + +import example.dao.CartDao; +import example.model.Computer; +import example.service.ICartService; + +import java.util.Collections; +import java.util.List; + +public class CartServiceImpl implements ICartService { + + CartDao cartDao = new CartDao(); + + @Override + public List myCart(Integer userId) throws Exception { + return cartDao.getCart(userId); + } +} diff --git a/src/main/webapp/cart.jsp b/src/main/webapp/cart.jsp new file mode 100644 index 0000000..bd01c84 --- /dev/null +++ b/src/main/webapp/cart.jsp @@ -0,0 +1,38 @@ +<%@ page contentType="text/html; charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + + + + 购物车 + + +

购物车

+ + + + + + + + + + + + + + + + + + + +
IDNamePriceActions
${computer.id}${computer.name}${computer.price} + 移出 +
+
+
+ 主页 + + diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index 75a33ff..9609483 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -8,5 +8,6 @@ 登录 电脑列表 用户列表 +我的购物车