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 课程设计报告 设计题目:_简易购物车设计
这是一个基于jsp跟javabean购物车设计
简单的购物车设计,简单易懂,适合jsp,servlet初学者!
PHP+Mysql购物车设计例程源码,有详细流程图,包括账号系统、购物系统、精美UI设计、恶意登录账号锁定、Ajax数据交互、PHP+Mysql购物车设计例程源码,有详细流程图,包括账号系统、购物系统、精美UI设计、恶意登录...
教你设计购物网站购物车模块,可参考进行模块设计
这是实现基础功能的购物车设计,是《java Web开发教程--入门与提高篇(JSP+Servlet)代码的试验,直接导入就可以用,包含数据库
一个简单购物车的的数据结构和设计思想 不错的东西和大家分享下
课程设计购物车网上书店报告,有很好的参考价值
基于TRIZ和专利规避的老人购物车设计
详细的设计了购物车的制作过程、需求、和源代码,适合新手和初学者学习
包含jsp购物车课程设计的详细代码和截图复制粘贴后即可运行
《电子商务网站建设》(高怡新 编著)第八章 电子商务网站创建实例(包括:总体结构设计、商品展示设计、购物车设计和收银台设计)完整源代码,原书没有提供源代码,经本人精心录入并调试通过,改正了原书代码的一些...
基于STM32F103单片机的智能购物车系统设计.pdf
2.能够完成已登陆客户对商品的选购:添加商品到个人购物车,并且对已添加到购物车的商品进行数量的增加、减少、修改和删除等操作。 3.能够通过查看购物车对所选商品进行确定、挑选,确认或修改购物者的联系方式,...
基于ASP.NET和SQL Server的网上购物车设计与实现.pdf
javascript+Html+css+php实现的购物车功能,包括用户登陆注册,购物车商品查询添加删除,密码修改等功能, 环境:WampServer64
用户登录、注册、管理员登陆、显示商品、添加到购物车功能。
storage工程演示了Android常用的几种数据存储方式,包括:共享参数SharedPreferences的键值对存取、数据库SQLite的关系型数据存取、SD卡的文件写入与读取操作(含文本文件读写和图片文件...以及实战项目“购物车”。
java+slq server 2008 实现购物车页面和模块