`
learnmore
  • 浏览: 605626 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

购物车设计

    博客分类:
  • j2ee
 
阅读更多
1.购物车类
package com.vo.shop;

import java.math.RoundingMode;
import java.text.NumberFormat;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;

public class Cart {
	// 购物车商品总数
	private int itemNumber = 0;
	private double totalPrice = 0;
	private Map<String,Object> items = new HashMap<String,Object>();

	/**
	 * 添加购物车
	 * 
	 * @param id
	 * @param goods
	 */
	public void addCart(String id, Goods goods, int number) {
		if (!items.containsKey(id)) {
			GoodsItem item = new GoodsItem(goods, number);
			items.put(id, item);
		} else {
			GoodsItem item = (GoodsItem) items.get(id);
			item.setNumber(item.getNumber() + number);
		}
		setItemNumber();
	}

	/**
	 * 修改购买商品数量
	 */
	public void updateCart(String id, int number) {
		if (items.containsKey(id)) {
			GoodsItem item = (GoodsItem) items.get(id);
			item.setNumber(number);
			setItemNumber();
		}
	}

	/**
	 * 删除购物车中的商品
	 */
	public void delCart(String id) {
		if (items.containsKey(id)) {
			items.remove(id);
			setItemNumber();
		}
	}

	/**
	 * 设置购物车中商品数量
	 * 
	 * @return
	 */
	public void setItemNumber() {
		Iterator it = items.entrySet().iterator();
		itemNumber = 0;
		while (it.hasNext()) {
			Map.Entry entry = (Entry) it.next();
			GoodsItem gt = (GoodsItem) entry.getValue();
			itemNumber += gt.getNumber();
		}
	}

	/**
	 * 获得购物车中的商品总价
	 */
	public String getTotalPrice() {
		Iterator it = items.entrySet().iterator();
		totalPrice = 0;
		while (it.hasNext()) {
			Map.Entry entry = (Entry) it.next();
			GoodsItem gt = (GoodsItem) entry.getValue();
			totalPrice += gt.getNumber() * gt.getGoods().getPrice();
		}
		return roundHalfUp(totalPrice, 2);
	}

	/**
	 * 清空购物车
	 */
	public void clearCart() {
		itemNumber = 0;
		totalPrice = 0;
		items.clear();
	}

	/**
	 * 四舍五入。
	 * 
	 * @param number
	 *            数值
	 * @return 舍入后的数值
	 * @see java.text.RoundingMode.HALF_UP
	 */
	public String roundHalfUp(double number, int frac) {
		NumberFormat fmt = NumberFormat.getInstance(Locale.CHINA);
		fmt.setMaximumFractionDigits(frac);
		fmt.setRoundingMode(RoundingMode.HALF_UP);
		return fmt.format(number);
	}

	public int getItemNumber() {
		return itemNumber;
	}

	public void setItemNumber(int itemNumber) {
		this.itemNumber = itemNumber;
	}

	public Map getItems() {
		return items;
	}

	public void setItems(Map items) {
		this.items = items;
	}

	public void setTotalPrice(float totalPrice) {
		this.totalPrice = totalPrice;
	}
}


2.关于在浏览器中共享session,因为第一次打开浏览器,服务器会往你的浏览器写入一个cookie,cookie的值为sessionid,cookie存活周期为会话期间,只要会话结束,cookie就会被清除,第二次打开新浏览器的时候,浏览器的cookie已经不存在sessionid,服务器因为无法得到客户端发送过来的sessionid,所以会创建新的session。
  解决办法:重写cookie存活时间,设置cookie有效时间为session的有效时间(request.getSession().getMaxInactiveInterval()),cookie的名称为JSESSIONID
分享到:
评论

相关推荐

    Java Web 课程设计报告 设计题目:_简易购物车设计

    Java Web 课程设计报告设计题目:简易购物车设计 Java Web 课程设计报告设计题目:简易购物车设计是 Java Web 开发课程中的一个实践项目,旨在设计和实现一个简易的购物车系统。该系统主要包括首页、注册、登录、...

    网站购物车设计

    ### 网站购物车设计的关键知识点 #### 一、购物车系统的重要性及设计原则 在电子商务领域,购物车的设计是提升用户体验、增加转化率的关键因素之一。良好的购物车设计不仅能方便用户添加、管理和结算商品,还能...

    ASP.NET购物车设计和源码

    ASP.NET购物车设计是Web开发中的一个重要环节,它涉及到用户交互、数据管理以及后端处理等多个方面的技术。在这个过程中,开发者需要理解用户在电子商务网站上选择商品并进行结算的行为模式,然后利用编程语言和框架...

    简单购物车设计思想,数据结构

    ### 简单购物车设计思想与数据结构详解 在电子商务系统中,购物车功能是不可或缺的一部分,它为用户提供了一种方便快捷的方式来管理他们选择的商品。本文将基于给定的文件信息来深入探讨一个简单的购物车实现方法...

    基于jsp购物车设计

    ### 基于JSP购物车设计的关键知识点 #### 一、引言 随着互联网技术的飞速发展,电子商务已成为日常生活中不可或缺的一部分。基于JSP(JavaServer Pages)的购物车设计是电子商务网站中的一项重要功能,它允许用户...

    《java Web开发教程--入门与提高篇(JSP+Servlet) 购物车设计

    本教程“《java Web开发教程--入门与提高篇(JSP+Servlet) 购物车设计”旨在教授如何利用这两种技术来创建一个功能完备的购物车系统。购物车设计是电商网站的核心部分,它需要处理用户添加、删除商品以及计算总价等...

    JavaScript + PHP购物车设计

    在本项目中,"JavaScript + PHP购物车设计"是一个典型的Web应用程序示例,它结合了前端和后端技术,用于创建一个完整的在线购物体验。这个应用程序涵盖了用户登录、注册、购物车管理以及密码修改等核心功能,全部在...

    简单的购物车设计

    在IT行业中,购物车设计是电子商务网站开发中的关键部分,对于初学者来说,理解并实现一个简单的购物车系统是学习Web开发技术的良好起点。这里,我们主要关注的是使用JSP(JavaServer Pages)和Servlet来构建这样的...

    聚宝商场购物车设计

    在电子商务系统中,购物车设计是至关重要的一个环节,它为用户提供了一个临时存储商品的地方,方便用户在浏览商品时能够自由选择并管理他们想要购买的商品。在这个“聚宝商场购物车设计”项目中,我们主要关注的是...

    购物车设计与实现(用户登录、注册、管理员登陆、显示商品)

    在电子商务系统中,购物车设计与实现是至关重要的部分,它涉及到用户交互、数据存储以及后端服务的高效运行。本项目着重实现了用户登录、注册、管理员登录、商品展示以及购物车添加功能,旨在创建一个基本的在线购物...

    基于TRIZ和专利规避的老人购物车设计.docx

    "基于TRIZ和专利规避的老人购物车设计" 本文旨在探讨基于TRIZ理论和专利规避的老人购物车设计。随着中国人口老龄化的加剧,老年人购物车的需求日益重要。学者们已经对老人购物车的设计进行了研究,但是这些研究大多...

    基于ASP.NET和SQL Server的网上购物车设计与实现.pdf

    《基于ASP.NET和SQL Server的网上购物车设计与实现》这篇文章主要探讨了如何利用ASP.NET技术和SQL Server数据库来构建一个网上购物车系统。这个系统是电子商务平台的重要组成部分,旨在提供一个模拟交易的环境,使...

    PHP购物车设计购物系统.zip

    PHP+Mysql购物车设计例程源码,有详细流程图,包括账号系统、购物系统、精美UI设计、恶意登录账号锁定、Ajax数据交互、PHP+Mysql购物车设计例程源码,有详细流程图,包括账号系统、购物系统、精美UI设计、恶意登录...

    基于Python实现的购物车设计源码

    该项目是一个基于Python的购物车设计源码,共包含23个文件,其中包括17个Python源代码文件、3个XML配置文件、2个Git忽略文件以及1个IntelliJ IDEA项目配置文件。该系统旨在提供一个功能完善的购物车解决方案,适用于...

    基于STM32F103单片机的智能购物车系统设计.pdf

    本文阐述了基于STM32F103单片机的智能购物车系统的设计理念及其工作原理,旨在解决传统超市购物车在高峰期结算时存在的诸多问题。通过引入无线通信和RFID技术,智能购物车能够提供包括最佳购物路线查询、商品信息...

    jsp购物车课程设计(含代码截图)

    在"jsp购物车课程设计"中,我们主要关注的是构建一个基于JSP技术的在线购物系统,其中包括购物车的功能。这个设计涵盖了数据库操作、用户登录验证、商品浏览、添加到购物车、结算等核心功能。通过提供的代码片段,...

    课程设计购物车网上书店报告

    ### 课程设计购物车网上书店报告 #### 一、项目背景及目标 本课程设计的主要目的是开发一个在线购物平台——网上书店系统。该系统旨在模拟实际的购物流程,为用户提供便捷的购书体验,同时为管理者提供有效的后台...

    电子商务网站创建实例(包括:总体结构设计、商品展示设计、购物车设计和收银台设计)

    《电子商务网站建设》(高怡新 编著)第八章 电子商务网站创建实例(包括:总体结构设计、商品展示设计、购物车设计和收银台设计)完整源代码,原书没有提供源代码,经本人精心录入并调试通过,改正了原书代码的一些...

    基于Python Flask框架的简单购物车设计源码

    该项目是一个基于Python Flask框架的简单购物车设计源码,包含38个文件,包括12个HTML文件、10个JPG图片、5个CSS样式表、2个Python脚本、2个JavaScript文件、1个Git忽略文件、1个Markdown文件、1个数据库文件,以及...

Global site tag (gtag.js) - Google Analytics