JavaWeb15.购物车案例(下)

回顾:JavaWeb14.购物车案例(上)

目录

项目功能实现

显示层

购物车  car.jsp

添加购物车处理页面 doAddCar.jsp

删除购物车页面 doDelCar.jsp

主页退出处理页面  doExit.jsp

清空购物车处理页  doClear.jsp

实体类

购物车条目 CarItem.java


项目功能实现

显示层

购物车  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;//对应的商品

}

你要尽全力保护你的梦想。那些嘲笑你梦想的人,他们注定失败,他们想把你变成和他们一样。我坚信,只要心中有梦想,我就会与众不同。你也是。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值