(1)添加商品到购物车
添加商品技术路线:商品详情页点击【加入购物车】----》form表单提交商品id及数量到CartServlet中的addCartItemToCart方法----》addCartItemToCart方法逻辑:a.判断session中是否有购物车Cart,如果获取不到,则创建购物车对象,放在session中,如果获取到则使用;b.获取商品的ID,数量,通过商品id查询商品对象,获取待购买的购物项----》将购物项CartItem加入购物车Cart,重定向到cart.jsp----》页面显示购物车汇中信息.
(2)删除购物项:
在购物车cart.jsp界面用户点击删除,向服务端发送商品ID----》服务端CartServlet中removeCartItem方法获取待删除商品ID,回去购物车,调用删除方法----》重定向到cart.jsp
(3)清空购物车
用户点击清空购物车按钮,向服务器发起请求----》服务端CartServlet中clearCartItem方法获取购物车,调用清空购物车方法----》重定向到cart.jsp
商品详情页:product_info.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>商品详情信息</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.min.css" type="text/css" />
<script src="${pageContext.request.contextPath}/js/jquery-1.11.3.min.js" type="text/javascript"></script>
<script src="${pageContext.request.contextPath}/js/bootstrap.min.js" type="text/javascript"></script>
<!-- 引入自定义css文件 style.css -->
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/style.css" type="text/css"/>
<style>
body {
margin-top: 20px;
margin: 0 auto;
}
.carousel-inner .item img {
width: 100%;
height: 300px;
}
</style>
</head>
<body>
<%@ include file="/jsp/header.jsp" %>
<div class="container">
<div class="row">
<div style="border: 1px solid #e4e4e4;width:930px;margin-bottom:10px;margin:0 auto;padding:10px;margin-bottom:10px;">
<a href="${pageContext.request.contextPath}/">首页 ></a>
</div>
<div style="margin:0 auto;width:950px;">
<form id="myForm" method="post" action="${pageContext.request.contextPath}/CartServlet?method=addCartItemToCart">
<div class="col-md-6">
<img style="opacity: 1;width:400px;height:350px;" title="" class="medium" src="${pageContext.request.contextPath}/${product.pimage}">
</div>
<div class="col-md-6">
<!--
${product} :底层依次调用4个域对象上的*.getAttribute("keyName");
寻找到request可以获取到一个对象 product
${product.pname} :通过获取到的product对象调用对象上的getPname()方法.
-->
<div><strong>${product.pname}</strong></div>
<div style="border-bottom: 1px dotted #dddddd;width:350px;margin:10px 0 10px 0;">
<div>编号:${product.pid}</div>
</div>
<div style="margin:10px 0 10px 0;">商城价: <strong style="color:#ef0101;">¥:${produ