图书商城:购物车模块
生活随笔
收集整理的這篇文章主要介紹了
图书商城:购物车模块
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
購物車存儲
- 保存在session中
- 保存在cookie中
- 保存在數據庫中
1、創建相關類
購物車的結構:
- CartItem:購物車條目,包含圖書和數量
- Cart:購物車,包含一個Map
2、添加購物車條目
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>購物車列表</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><meta http-equiv="content-type" content="text/html;charset=utf-8"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> <style type="text/css">* {font-size: 11pt;}div {margin:20px;border: solid 2px gray;width: 150px;height: 150px;text-align: center;}li {margin: 10px;}#buy {background: url(<c:url value='/images/all.png'/>) no-repeat;display: inline-block;background-position: 0 -902px;margin-left: 30px;height: 36px;width: 146px;}#buy:HOVER {background: url(<c:url value='/images/all.png'/>) no-repeat;display: inline-block;background-position: 0 -938px;margin-left: 30px;height: 36px;width: 146px;} </style></head><body> <h1>購物車</h1> <c:choose><%-- 如果沒有車,或車的內容集合為0長 --%><c:when test="${empty sessionScope.cart or fn:length(sessionScope.cart.cartItems) eq 0}"><img src="<c:url value='/images/cart.png'/>" width="300"/></c:when><c:otherwise> <table border="1" width="100%" cellspacing="0" background="black"><tr><td colspan="7" align="right" style="font-size: 15pt; font-weight: 900"><a href="<c:url value='/CartServlet?method=clear'/>">清空購物車</a></td></tr><tr><th>圖片</th><th>書名</th><th>作者</th><th>單價</th><th>數量</th><th>小計</th><th>操作</th></tr><c:forEach items="${sessionScope.cart.cartItems }" var="cartItem"><tr><td><div><img src="<c:url value='/${cartItem.book.image }'/>"/></div></td><td>${cartItem.book.bname }</td><td>${cartItem.book.author }</td><td>${cartItem.book.price }元</td><td>${cartItem.count }</td><td>${cartItem.subtotal }元</td><td><a href="<c:url value='/CartServlet?method=delete&bid=${cartItem.book.bid }'/>">刪除</a></td></tr> </c:forEach><tr><td colspan="7" align="right" style="font-size: 15pt; font-weight: 900">合計:${sessionScope.cart.total }元</td></tr><tr><td colspan="7" align="right" style="font-size: 15pt; font-weight: 900"><a id="buy" href="<c:url value='/OrderServlet?method=add'/>"></a></td></tr> </table></c:otherwise> </c:choose></body> </html> public class CartServlet extends BaseServlet {/*** 添加購物條目* @param request* @param response* @return* @throws ServletException* @throws IOException*/public String add(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {/** 1. 得到車* 2. 得到條目(得到圖書和數量)* 3. 把條目添加到車中*//** 1. 得到車*/Cart cart = (Cart)request.getSession().getAttribute("cart");/** 表單傳遞的只有bid和數量* 2. 得到條目* > 得到圖書和數量* > 先得到圖書的bid,然后我們需要通過bid查詢數據庫得到Book* > 數量表單中有*/String bid = request.getParameter("bid");Book book = new BookService().load(bid);int count = Integer.parseInt(request.getParameter("count"));CartItem cartItem = new CartItem();cartItem.setBook(book);cartItem.setCount(count);/** 3. 把條目添加到車中*/cart.add(cartItem);return "f:/jsps/cart/list.jsp";}/*** 清空購物條目* @param request* @param response* @return* @throws ServletException* @throws IOException*/public String clear(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {/*** 1. 得到車* 2. 設置車的clear*/Cart cart = (Cart)request.getSession().getAttribute("cart");cart.clear();return "f:/jsps/cart/list.jsp";}/*** 刪除購物條目* @param request* @param response* @return* @throws ServletException* @throws IOException*/public String delete(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {/** 1. 得到車* 2. 得到要刪除的bid*/Cart cart = (Cart)request.getSession().getAttribute("cart");String bid = request.getParameter("bid");cart.delete(bid);return "f:/jsps/cart/list.jsp";} }3、清空條目
4、刪除購物車條目
5、我的購物車
top.jsp中存在一個鏈接:我的購物車
我的購物車直接訪問/jsps/cart/list.jsp,它會顯示session中車的所有條目
總結
以上是生活随笔為你收集整理的图书商城:购物车模块的全部內容,希望文章能夠幫你解決所遇到的問題。