java购物车源代码(java中购物车的功能怎么实现)
本文目录
- java中购物车的功能怎么实现
- 编程 java 关于购物车
- java web 做购物车的大概思路,和实现步奏是什么
- java简单的购物车代码
- 求java购物车例子要用框架struts+hibernate+spring
- Java初学者,哪位友友能帮我设计一个简单的类似超市购物车的程序,参考一下~谢谢!
- jsp购物车代码
- java购物车怎么写
- 用J**A+SERVLET+J**ABEAN写购物车代码
java中购物车的功能怎么实现
一般利用session,当货物提交后,让session失效,这样就可以完成简单的购物车。用cookie保存本地也可以。看你的具体需求了。
编程 java 关于购物车
点击数量进入购物车页面,这个应该好做吧,跳动一个Action转发到购物车页面
下面是我的图书购物车(自己写的)
package *****;
import *****;
import *****;
import *****;
import *****;
import *****;
import *****;
import *****;
/**
* 该类提供购物车的操作
* */
public class CartItemsService {
private Map《String,BookCar》 itemMap=null;//购物车Map集合
private Collection《BookCar》 items;//购物车项
public CartItemsService()
{
itemMap=new HashMap《String ,BookCar》();
}
public Collection《BookCar》 getItems() {
return items;
}
public void setItems(Collection《BookCar》 items) {
***** = items;
}
public Map《String, BookCar》 getItemMap() {
return itemMap;
}
public void setItemMap(Map《String, BookCar》 itemMap) {
***** = itemMap;
}
public int getBookCarSize()
{
return *****();
}
public boolean containById(String bookid)
{
return *****(bookid);
}
public void addBookCarItems(BookInfo bookInfo)
{
if(bookInfo!=null)
{
BookCar bookCar=(BookCar)*****(*****());
if(bookCar==null)
{
bookCar=new BookCar();
*****(bookInfo);
*****();
*****(*****(),bookCar);
items=*****();
}else {
*****();
}
}
}
public BookInfo removeCarItem(String bookid)
{
BookCar bookCar=*****(bookid);
if(bookCar==null)
{
return null;
}
items=*****();
return *****();
}
public BigDecimal getBookCarTotal()//获得总金额
{
BigDecimal carTotal=new BigDecimal("****");
Iterator《BookCar》 iterator=*****();
while(*****())
{
BookCar bookCar=*****();
BigDecimal carPrice=*****().getBprice();
BigDecimal quantity=new BigDecimal(*****(*****()));
carTotal=*****(*****(quantity));
}
return carTotal;
}
public Iterator《BookCar》 getAllCartItems(){
return *****().iterator();
}
public void increaseQuantityById(String bookid)
{
BookCar bookCar=*****(bookid);
if(bookCar!=null)
{
*****();
}
}
public void setQuantityById(String bookid,int quantity)//根据图书ID增加数量
{
BookCar bookCar=*****(bookid);
if(bookCar!=null)
{
*****(quantity);
}
}
public void clear(){
*****();
}
}
修改后传入这个方法就可以了setQuantityById()
★★★ 注意购物车一定要用Map 不能用List或ArrayList
因为购物车是顾客频繁操作的功能
Map在取值或删除值的效率比List或ArrayList要高的多
它基本不需要时间,而List或ArrayList还要遍历。。。。。。
希望对你有帮助!!
java web 做购物车的大概思路,和实现步奏是什么
购物车管理模块主要功能有如下几个部分:(1)创建购物车 当客户登录后,系统会给客户创建一个购物车放入服务器的Session会话中。使客户在整个会话中都拥有一个相同的购物车。这里主要运用了Http协议中的会话机制,将购物车保存在客户的会话中,这样在整个客户游览不同页面商品的过程中,都会使用同一个购物车对象。 具体执行步骤:(1)从客户的请求对象中获取Session会话对象(2)从会话对象中获取购物车对象(3)判断是购物车对象是不是空的,如果是空是就创建一个 /* * 在**到session被创建之后,就立即向session中添加一个购物车Car; */ public void sessionCreated(HttpSessionEvent arg0) { HttpSession session = *****(); Cart cart=new Cart(); *****("cart", cart); } /* * 从session中获得购物车 */ Cart cart = (Cart) *****("cart"); if (cart == null) { cart = new Cart(); }(2)向购物车中添加一个商品项 客户在查看网页上的一个商品时,当向服务器发送一个“添加到购物车”的请求时,会执行这个功能。功能执行过程:(1)从客户请求对象中获取商品的ID(2)调用业务层的方法根据商品ID去数据查询商品的信息,返回商品对象(3)从商品对象中获取商品名,商品价格,来构建一个商品项对象(4)从Session会话中获取购物车对象(5)调用业务层的方法来根据购物车对象和商品项对象来执行添加操作(6)将些商品项对象放入到购物车中 部分实现代码: /* * 从数据库中把商品取到; */ ProductService productService = (ProductService) *****().getService(*****_SERVICE); Integer id = *****(*****("productid")); Product product = *****(id); /* * 在向购物车中添加商品的时候会判断商品是否已经存在, * 已存在的就不让在加入了; */ if (*****(id)) { message = "该商品已经存在!请《a onclick=’javascript:*****(-1)’》返回《/a》!"; *****("message", message); return *****("error"); } else { /* * 向购物车添加一个商品; */ *****(product); *****("cart", cart); return *****("addcartsuccess"); }
java简单的购物车代码
package Test;
import *****;
import *****;
import *****;
import *****;
public class Test {
public static void main(String args) {
init();//初始化
Map《String,String》 map = new LinkedHashMap《》();
while(true){
Scanner in= new Scanner(*****);
map = buy(in,map);//选择
*****();
*****("还要继续购物吗?(Y/N)");
String jx = *****();
if(*****("N")){
break;
}
}
print(map);
}
public static void print(Map《String, String》 m){
*****("\n\n\n******************");
*****(" 购物车清单");
Integer hj = 0;
for (Entry《String, String》 entry : *****()) {
String key = *****();
String value = *****();
if(*****("1")){
hj += *****(value)*3;
*****("哇哈哈纯净水: "+value+"件,合计:¥"+*****(value)*3);
}else if(*****("2")){
hj += *****(value)*5;
*****("康师傅方便面: "+value+"件,合计:¥"+*****(value)*5);
}else if(*****("3")){
hj += *****(value)*4;
*****("可口可乐: "+value+"件,合计:¥"+*****(value)*4);
}
}
*****("合计金额:¥"+hj);
}
public static void init(){
*****("******************");
*****("\t商品列表\n");
*****(" 商品名称 价格");
*****("1. 哇哈哈纯净水 ¥3");
*****("2. 康师傅方便面 ¥5");
*****("3. 可口可乐 ¥4");
*****("******************");
}
public static Map《String,String》 buy(Scanner scan,Map《String,String》 m){
*****("请输入编号:");
String bh = *****();
*****("请输入购买数量:");
String num = *****();
if(*****()》0 && *****().contains(bh)){
*****(bh,(*****(bh)+*****(num))+"");
}else{
*****(bh, num);
}
return m;
}
}
求java购物车例子要用框架struts+hibernate+spring
java教程购物车Struts Hibernate实现shopcart
全部代码在
***隐藏网址***
原理:利用session会话保持用户一次购物操作的购买记录,当用户点击“结帐”后将保存在session中的hashmap容器中的信息insert到DB中,完成一次购物操作。
模块所需要配置文件:***** ,***** ,*****
模块对应的jsp有:*****(商品信息一览页面),*****(购买操作后的商品清单页面)
模块对应的action有:IndexAction (实现对DB中的商品表信息结果集的遍历,并转向对应的*****)
ListAction (将JSP上的商品信息存入hashmap容器,并转向对应的*****)
UpdateAction (对*****页面上的商品数量修改的业务逻辑处理)
DeleteAction (对*****页面上的商品列表信息的业务逻辑处理)
模块所需的相关Java容器选择:存储商品id,sum,price,name,allprices信息用hashmap,主要是考虑到其key重复后可以覆盖上次的value记录。存储点击商品后的商品id用list容器,主要考虑到list是有序并可以重复的特点,用其可以跟踪用户多次点击相同商品的操作,并对商品的数量进行相应的增加。
模块主要Action类如下:
IndexAction:
public class IndexAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResp***e resp***e) throws Exception {
//查找商品表中的所有商品信息
GoodsDAO dao = new GoodsDAO();
List list = *****();
*****("lister",list);
return *****("a");
}
}
ListAction:
public class ListAction extends Action {
// 将hashmap中value转到list中
public static List getList(HashMap hs) {
List list = new ArrayList();
Iterator itr = *****().iterator();
while (*****()) {
*****(*****(*****()));
}
return list;
}
//优化后的getList方法
public static List getList(HashMap hs) {
return new ArrayList(*****());
}
全部代码在
***隐藏网址***
Java初学者,哪位友友能帮我设计一个简单的类似超市购物车的程序,参考一下~谢谢!
以前学习java又做个实例,挺值得学习的。
1.首先我先列出我们所需要的java类结构。
1)***** --------- 模拟存储商品的数据库。
2)***** ------------ 商品实体类,一个普通的javabean,里面有商品的基本属性。
3)***** --- 订单表。
4)***** ------ 这个就是最主要的购物车,当然比较简单。
5)***** --- 这个是测试类。
2.下面贴出具体代码并带关键注释。
*****
public class Database {
/*采用Map存储商品数据,为什么呢?我觉得这个问题你自己需要想下。
* Integer 为Map的key值,McBean为Map的value值。
*/
private static Map《Integer, McBean》 data = new HashMap《Integer, McBean》();
public Database() {
McBean bean = new McBean();
*****(1);
*****("地瓜");
*****(***);
*****("新鲜的地瓜");
*****(1, bean);//把商品放入Map
bean = new McBean();
*****(2);
*****("土豆");
*****(***);
*****("又好又大的土豆");
*****(2, bean);//把商品放入Map
bean = new McBean();
*****(3);
*****("丝瓜");
*****(***);
*****("本地丝瓜");
*****(3, bean);//把商品放入Map
}
public void setMcBean(McBean mcBean){
*****(*****(),mcBean);
}
public McBean getMcBean(int nid) {
return *****(nid);
}
}
*****
public class McBean {
private int id;//商品编号
private String name;//商品名
private double price;//商品价格
private String instuction;//商品说明
public int getId() {
return id;
}
public void setId(int id) {
***** = id;
}
public String getName() {
return name;
}
public void setName(String name) {
***** = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
***** = price;
}
public String getInstuction() {
return instuction;
}
public void setInstuction(String instuction) {
***** = instuction;
}
}
*****
public class ShoppingCar {
private double totalPrice; // 购物车所有商品总价格
private int totalCount; // 购物车所有商品数量
private Map《Integer, OrderItemBean》 itemMap; // 商品编号与订单项的键值对
public ShoppingCar() {
itemMap = new HashMap《Integer, OrderItemBean》();
}
public void buy(int nid) {
OrderItemBean order = *****(nid);
McBean mb;
if (order == null) {
mb = new Database().getMcBean(nid);
order = new OrderItemBean(mb, 1);
*****(nid, order);
update(nid, 1);
} else {
*****(*****() + 1);
update(nid, 1);
}
}
public void delete(int nid) {
OrderItemBean delorder = *****(nid);
totalCount = totalCount - *****();
totalPrice = totalPrice - *****().getPrice() * *****();
}
public void update(int nid, int count) {
OrderItemBean updorder = *****(nid);
totalCount = totalCount + count;
totalPrice = totalPrice + *****().getPrice() * count;
}
public void clear() {
*****();
totalCount = 0;
totalPrice = ***;
}
public void show() {
DecimalFormat df = new DecimalFormat("¤#.##");
*****("商品编号\t商品名称\t单价\t购买数量\t总价");
Set set = *****();
Iterator it = *****();
while (*****()) {
OrderItemBean order = *****(*****());
*****(*****().getId() + "\t"
+ *****().getName() + "\t"
+ *****(*****().getPrice()) + "\t" + *****()
+ "\t" + *****(*****() * *****().getPrice()));
}
*****("合计: 总数量: " + *****(totalCount) + " 总价格: " + *****(totalPrice));
*****("**********************************************");
}
}
*****
public class OrderItemBean {
private McBean thing;//商品的实体
private int count;//商品的数量
public OrderItemBean(McBean thing, int count) {
super();
***** = thing;
***** = count;
}
public McBean getThing() {
return thing;
}
public void setThing(McBean thing) {
***** = thing;
}
public int getCount() {
return count;
}
public void setCount(int count) {
***** = count;
}
}
*****
package *****;
public class TestShoppingCar {
public static void main(String args) {
ShoppingCar s = new ShoppingCar();
*****(1);//购买商品编号1的商品
*****(1);
*****(2);
*****(3);
*****(1);
*****();//显示购物车的信息
*****(1);//删除商品编号为1的商品
*****();
*****();
*****();
}
}
3.打印输出结果
商品编号商品名称单价购买数量总价
1地瓜¥23¥6
2土豆¥****¥***
3丝瓜¥****¥***
合计: 总数量: ¥5 总价格: ¥***
**********************************************
商品编号商品名称单价购买数量总价
2土豆¥****¥***
3丝瓜¥****¥***
合计: 总数量: ¥2 总价格: ¥***
**********************************************
商品编号商品名称单价购买数量总价
合计: 总数量: ¥0 总价格: ¥0
**********************************************
4.打字太累了,比较匆忙,但是主要靠你自己领会。哪里不清楚再提出来。
jsp购物车代码
//*****
《html》
《head》《title》shopping stor《/title》《/head》
《body》
《form action="*****" target="post"》
《br》
please select the item that you want to buy
《br》
《select name="item"》
《option》book:old man and the sea
《option》x-box game machine
《option》mp3 player
《option》cce
《option》book:jsp programming
《option》cd "the endless love"
《option》dvd "gone with the wind"
《/select》
《br》
《input type="submit" name="submit" value="add"》
《input type="submit" name="submit" value="remove"》
《/form》
《/body》
《/html》
------------------------------------------------------------------
//*****
《%@page contentType="text/html;charset=ISO8859_1" %》
《html》
《jsp:useBean id="cart" scope="session" class="*****"/》
《jsp:setProperty name="cart" property="*"/》
《%
*****();
%》
《br》
《ol》
you have chosen these items:
《%
String items=*****();
for(int i=0;i《*****;i++)
{
%》
《li》《%=items %》《/li》
《%
}
%》
《/ol》
《hr》
《%@include file="*****" %》
《/html》
---------------------------------------------------------------------//*****
package test;
***隐藏网址***
import *****;
import *****;
public class DummyCart
{
Vector v = new Vector();
String submit=null;
String item= null;
private void addItem(String name)
{
*****(name);
}
private void removeItem(String name)
{
*****(name);
}
public void setItem(String s)
{
item=s;
}
public void setSubmit(String s)
{
submit=s;
}
public String getItems()
{
String ;
*****(s);
return s;
}
public void processRequest()
{
if(submit==null)
addItem(item);
if(*****("add"))
addItem(item);
else if (*****("remove"))
removeItem(item);
reset();
}
private void reset()
{
submit=null;
item=null;
}
}
----------------------------------------------------------------------
上面是一个简单的例子,功能都能实现,对网页效果要求更漂亮些的可做一些修改。
java购物车怎么写
用Vector 或者是HashMap去装
《下面有部分代码你去看吧》
package *****;
import *****;
import *****;
import *****;
import *****;
import *****;
import *****;
import *****;
import *****;
public class CartModel {
private Connection conn;
public CartModel(Connection conn) {
*****=conn;
}
/**
* 得到订餐列表
*
* @return
*/
public List changeToList(Map carts) {
// 将Set中元素转换成数组,以便使用循环进行遍历
Object foodItems = *****().toArray();
// 定义double变量total,用于存放购物车内餐品总价格
double total = 0;
List list = new ArrayList();
// 循环遍历购物车内餐品,并显示各个餐品的餐品名称,价格,数量
for (int i = 0; i 《 *****; i++) {
// 从Map对象cart中取出第i个餐品,放入cartItem中
CartItemBean cartItem = (CartItemBean) carts
.get((String) foodItems);
// 从cartItem中取出FoodBean对象
FoodBean food1 = *****();
// 定义int类型变量quantity,用于表示购物车中单个餐品的数量
int quantity = *****();
// 定义double变量price,表示餐品单价
double price = *****();
// 定义double变量,subtotal表示单个餐品总价
double subtotal = quantity * price;
// // 计算购物车内餐品总价格
total += subtotal;
*****(subtotal);
*****(total);
*****(cartItem);
}
return list;
}
/**
* 增加订餐
*/
public Map add(Map cart, String foodID) {
// 购物车为空
if (cart == null) {
cart = new HashMap();
}
FoodModel fd = new FoodModel(conn);
FoodBean food = *****(foodID);
// 判断购物车是否放东西(第一次点餐)
if (*****()) {
CartItemBean cartBean = new CartItemBean(food, 1);
*****(foodID, cartBean);
} else {
// 判断当前菜是否在购物车中,false表示当前菜没有被点过。。
boolean flag = false;
// 得到键的集合
Set set = *****();
// 遍历集合
Object obj = *****();
for (int i = 0; i 《 *****; i++) {
Object object = obj;
// 如果购物车已经存在当前菜,数量+1
if (*****(foodID)) {
int quantity = ((CartItemBean) *****(object))
.getQuantity();
quantity += 1;
*****(quantity);
((CartItemBean) *****(object)).setQuantity(quantity);
flag = true;
break;
}
}
if (flag == false) {
// 把当前菜放到购物车里面
CartItemBean cartBean = new CartItemBean(food, 1);
*****(foodID, cartBean);
}
}
return cart;
}
/**
* 取消订餐
*/
public Map remove(Map cart, String foodID) {
*****(foodID);
return cart;
}
/**
* 更新购物车信息
*
* @param cart
* @param foodID
* @return
*/
public Map《String, CartItemBean》 update(Map cart, String foodID,
boolean isAddorRemove) {
Map map;
if (isAddorRemove) {
map = add(cart, foodID);
} else {
map = remove(cart, foodID);
}
return map;
}
}
用J**A+SERVLET+J**ABEAN写购物车代码
你用
写一个购物车的bean,里边有产品和数量
public class CarProduct {
private XXX XXX;
private int count;
public Book getXXX() {
return XXX;
}
public void setXXX(XXX XXX) {
*****= XXX;
}
public int getCount() {
return count;
}
public void setCount(int count) {
***** = count;
}
}
用session存购物车里的东西,提交订单的时候,把购物车清空就行,
更多文章:
label标签打印(Labelmx怎样连接Excel打印标签)
2026年4月26日 18:40
angularjs 百科(Web前端主流框架—Angular的优缺点分析)
2026年4月26日 18:00
javascript登录注册界面(js怎么实现多用户注册登录界面)
2026年4月26日 17:40
sql不四舍五入(sql 查询出的结果进行除法运算,结果无法四舍五入求助!)
2026年4月26日 16:20
mysql查看用户是否被锁(数据库查一个用户的密码查出来的密码是加密过的看不到,怎么才能看到)
2026年4月26日 16:00
哪些电脑用linux系统(除了华为之外还有什么电脑预装Linux操作系统)
2026年4月26日 15:40




