目录
项目功能实现
显示层
购物车 car.jsp
<%@page import="java.util.ArrayList"%>
<%@page import="web_08.zking.vo.CarItem"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="bootstrap-3.3.7-dist/css/bootstrap.css">
<script src="bootstrap-3.3.7-dist/js/jquery-3.5.1.js"></script>
<script src="bootstrap-3.3.7-dist/js/bootstrap.js"></script>
<style>
td:nth-child(4)::before,
small {
content: "$";
}
* {
outline: none !important;
}
td,
th {
text-align: center;
}
input {
text-align: center;
}
</style>
</head>
<body>
<div class="jumbotron">
<div class="container">
<h1>欢迎光临喜洋洋购物车🛒</h1>
<p>尊贵的xxx</p>
</div>
</div>
<table class="table">
<tr>
<th>商品序号</th>
<th>商品名称</th>
<th>商品个数</th>
<th>商品总价</th>
<th>操作</th>
</tr>
<%
Object obj=session.getAttribute("car");
if(obj==null){
response.sendRedirect("login.jsp");
}
List<CarItem> car=(List<CarItem>)obj;
int sum=0;
for(CarItem carItem : car){
sum+=carItem.getSum();
%>
<tr>
<td style="line-height: 30.5px;"><%=carItem.getGoods().getId()%></td>
<td style="line-height: 30.5px;"><%=carItem.getGoods().getName()%></td>
<td>
<div class="input-group" style="width: 120px;margin: auto;">
<span class="input-group-btn">
<!-- 修改购物车数量 -->
<a href="doUpdCar.jsp?id=<%=carItem.getGoods().getId()%>&type=0" class="btn btn-default" type="button">-</a>
</span>
<input value="<%=carItem.getCount() %>" type="text" class="form-control">
<span class="input-group-btn">
<a href="doUpdCar.jsp?id=<%=carItem.getGoods().getId()%>&type=1" class="btn btn-default" type="button">+</a>
</span>
</div>
</td>
<td style="line-height: 30.5px;"><%=carItem.getSum()%></td>
<td style="line-height: 30.5px;">
<a href="doDelCar.jsp?id=<%=carItem.getGoods().getId()%>" class="btn btn-primary">删除</a>
</td>
</tr>
<%}%>
</table>
<h1 class="alert alert-info">
当前购物车总价¥
<small><%=sum%></small>
<a href="doClear.jsp" class="btn btn-danger">点我结算</a>
</h1>
</body></html>
添加购物车处理页面 doAddCar.jsp
<%
List<CarItem> car = (List<CarItem>) session.getAttribute("car");
//商品的id
Integer id = Integer.parseInt(request.getParameter("id"));
//类型
String type = request.getParameter("type");
//查询对应的条目
CarItem i=null;
for (CarItem item : car) {
if (item.getGoods().getId() == id) {
i=item;
break;
}
}
if(type!=null){
//去修改购物车中对应的选项
i.setCount(i.getCount() + (type.equals("0") ? -1 : 1));
}
else{ i.setCount((int)Double.parseDouble(request.getParameter("count").equals("")?"1":request.getParameter("count")));
}
i.setCount(i.getCount() > 0 ? i.getCount() : 1);
i.setSum(i.getCount() * i.getGoods().getPrice());
//更新购物车
session.setAttribute("car", car);
//跳回首页
response.sendRedirect("/car.jsp");
%>
删除购物车页面 doDelCar.jsp
<%@page import="web_08.zking.vo.CarItem"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
List<CarItem> car=(List<CarItem>)session.getAttribute("car");
Integer id=Integer.parseInt(request.getParameter("id"));
for(int i=0; i<car.size(); i++){
if(car.get(i).getGoods().getId()==id){
car.remove(car.get(i));
break;
}
}
session.setAttribute("car", car);
response.sendRedirect("car.jsp");
%>
主页退出处理页面 doExit.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
session.invalidate();//让session失效
response.sendRedirect("login.jsp");
%>
清空购物车处理页 doClear.jsp
<%@page import="web_08.zking.vo.CarItem"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
List<CarItem> car=(List<CarItem>)session.getAttribute("car");
//for(CarItem carItem:car){
//car.remove(car);
//break;
//}
//直接清空集合
car.clear();
session.setAttribute("car", car);
response.sendRedirect("car.jsp");
%>
实体类
购物车条目 CarItem.java
package com.zking.vo;
import com.zking.pojo.Goods;
import lombok.Data;
@SuppressWarnings("all")
@Data
public class CarItem {
private Integer count;//数量
private Integer sum;//条目总价
private Goods goods;//对应的商品
}
你要尽全力保护你的梦想。那些嘲笑你梦想的人,他们注定失败,他们想把你变成和他们一样。我坚信,只要心中有梦想,我就会与众不同。你也是。