jsp简单的购物车代码(JSP的购物车功能)
大家好,关于jsp简单的购物车代码很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于JSP的购物车功能的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
怎么用jsp的session对象编写购物车
肯定需要用javabean啊,如果要购买的话就把这个物存入到map类型的cart里面,再调用session.setAttribute方法把hashmap类型的cart放到session里面,然后在购物车那个页面取出购物车里的东西就行了,
DiscBean bean=data.getItem(itemid);这是选中物品的id
得到session对象
HttpSession session= request.getSession();
得到map类型的购物车
Map car=(Map)session.getAttribute("car");
if(car==null){
car=new HashMap();
session.setAttribute("car", car);
}
Set set=car.keySet();得到键的集合
Object[] bea=set.toArray();
boolean isNewDisc= true;
for(Object object: bea){
DiscItem discitem=(DiscItem)car.get(object);
String discitemid= discitem.getDiscBean().getItemID();
if(itemid.equals(discitemid)){
isNewDisc= false;
discitem.setNumber(discitem.getNumber()+1);
break;
}
}
if(isNewDisc){
car.put(itemid, new DiscItem(bean,1));
}
这个例子就是说我添加一本书的信息,如果是已经在购物车里了,就更新它的数量,如果没在购物车里,就把这个bean保存到购物车,并且数量设为一
在JSP中怎样实现购物车计数
购物车是电子商务网站中不可缺少的组成部分,但目前大多数购物车只能作为一个顾客选中商品的展示,客户端无法将购物车里的内容提取出来满足自己事务处理的需要,而这一点在有些电子商务活动中很有必要。XML的出现使得网络上传输的数据变得有意义起来,我们可以根据不同的要求以不同的样式将一个购物车的内容显示出来。
本文将详细分析一个由Java实现的基于XML的购物车。下面是一个包含了五件商品的购物车的XML内在结构:它的根元素为cart,total元素表示购物车内的总金额,每个item元素表示一件商品,item里的子元素分别标明了该商品的具体信息,可根据实际情况添加、修改或删除。
在这里,需要建立一个表示购物车的类:XMLCart.java,它是一个JavaBean,所以它包含了一个空的构造函数。这个类包含了购物车的一些基本功能:生成一个空的购物车,往购物车里添加商品,删除购物车里的商品,改变购物车内商品的数量以及清空购物车等。它拥有一个全局私有变量“private XMLDocument myCart”,myCart用来存储购物车里的详细内容,购物车的基本功能就是对它的操作,它的类型是XMLDocument,即一个XML文档。这样,对购物车的操作就转换成对myCart中的子元素的添加、删除,及元素值的计算、修改等。
1.清空购物车
清空购物车即生成一个空的购物车。这里空购物车是一个含有根元素cart及其元素total的XML文档,total元素是购物车的总金额,它的初始值为0,其XML具体形式如下:
<?xml version=‘1.0’ encoding=‘gb2312’?>
< cart>
< total>0</total>
</cart>
将这个XML字符串由parseString函数转换成XMLDocument存入myCart。
其代码如下:
public void emptyCart() throws IOException,SAXException{
String stringCart=“<?xml version=‘1.0’encoding=‘gb2312’?>”+
“< cart>< total>0</total></cart>”;
myCart=parseString(stringCart);
}
2.添加商品
添加商品,即将传入的item元素添加到根元素cart里,
其中item里包括商品详细信息,
同时计算total的值。其代码如下:
public void addItemToCart(String stringItem)
throws IOException,SAXException{
//将item由String转换为XMLDocument
XMLDocument itemAdded=parseString(stringItem);
//取出item节点,并复制它
NodeList itemList=itemAdded.getElementsByTagName(“item”);
Node item=itemList.item(0);
Node cloneItem=item.cloneNode(true);
//如果购物车为空,则构造一个新的购物车
if(isCartEmpty()){
myCart.emptyCart();
}
//如果该商品不在购物车中,则插入该商品,并计算总金额
if(!isItemExist(item,myCart)){
//取myCart的根元素,并将复制的item节点添加到后面
Element cartRoot=myCart.getDocumentElement();
Node cartNode=cartRoot.appendChild(cloneItem);
computeTotal();//计算总金额
}
}
3.删除商品
删除商品,即根据商品代码将该商品的item元素
从myCart的根元素cart中删除,
并重新计算total的值:
public void moveItemFromCart(String id){
//取出以item为单位的节点集cartList以及根元素cartRoot
NodeList cartList=myCart.getElementsByTagName(“item”);
Element cartRoot=myCart.getDocumentElement();
//在cartList中查找代码为选中id的商品
for(int x=0;x< cartList.getLength();x++){
Node itemNode=cartList.item(x);
String idValue=itemNode.getFirstChild().
getFirstChild().getNodeValue();
//如果找到,则从cartRoot中删除该节点,并跳出循环
if(idValue.equals(id)){
itemNode=cartRoot.removeChild(itemNode);
break;
}
}
computeTotal();//计算总金额
}
4.改变商品数量
根据客户在页面上所填的数量,修改myCart中quantity,
并重新计算total:
public void addQuantityToCart(String qnty) throws
IOException,SAXException{
//将传过来的包含商品数量的一组XML字符串转换为XML文档
XMLDocument quantityChanged=parseString(qnty);
//取出包含新数量的quantity节点集和myCart中的quantity节点集
NodeList quantityList=quantityChanged.getElementsByTagName(“quantity”);
NodeList cartList=myCart.getElementsByTagName(“quantity”);
//循环改变商品的数量
for(int x=0;x< cartList.getLength();x++){
//将新quantity的值赋给myCart中相应的quantity中去
String quantity=quantityList.item(x).getFirstChild().getNodeValue();
cartList.item(x).getFirstChild().setNodeValue(quantity);
}
computeTotal();//计算总金额
}
5.计算总金额
即计算total的值,其中total=∑(price*quantity):
public void computeTotal(){
NodeList quantityList=myCart.getElementsByTagName(“quantity”);
NodeList priceList=myCart.getElementsByTagName(“price”);
float total=0;
//累加总金额
求简单实现网上商城功能的java代码
平时在线10k人大概是让你创建一个数据库连接池,大小设置10k。
下面是一个图书商城的数据库表部分,供你参考
set utf8
DROP TABLE IF EXISTS d_product;
CREATE TABLE d_product(//用来存放总商品,入图书种类
id int(12) NOT NULL auto_increment,
product_name varchar(100) NOT NULL,
description varchar(100) default NULL,
add_time bigint(20) default NULL,
fixed_price double NOT NULL,
dang_price double NOT NULL,
keywords varchar(200) default NULL,
has_deleted int(1) NOT NULL default'0',
product_pic varchar(200) default NULL,
PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO d_product VALUES(23,'上课睡觉的故事','上课睡觉的故事',1237873000234,200,180,'key',0,'15.jpg');
DROP TABLE IF EXISTS d_book;
CREATE TABLE d_book(//用来存放图书的具体内容
id int(12) NOT NULL,
author varchar(200) NOT NULL,
publishing varchar(200) NOT NULL,
publish_time bigint(20) NOT NULL,
word_number varchar(15) default NULL,
which_edtion varchar(15) default NULL,
total_page varchar(15) default NULL,
print_time int(20) default NULL,
print_number varchar(15) default NULL,
isbn varchar(25) default NULL,
author_summary text NOT NULL,
catalogue text NOT NULL,
PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO d_book VALUES(24,'阿斗,'地球出版社',1237873000234,'1万','1','100',1,NULL,'12345678','无描述,'好书!');
DROP TABLE IF EXISTS d_category;
CREATE TABLE d_category(//商城图书目录
id int(12) NOT NULL auto_increment,
turn int(10) NOT NULL,
en_name varchar(200) NOT NULL,
name varchar(200) NOT NULL,
description varchar(200),
parent_id int(10),
PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO d_category VALUES(1,1,'Book','图书',NULL,0);
DROP TABLE IF EXISTS d_category_product;
CREATE TABLE d_category_product(//这个是连接目录和书籍具体信息的表
id int(12) NOT NULL auto_increment,
product_id int(10) NOT NULL,
cat_id int(10) NOT NULL,
PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO d_category_product VALUES(72,24,1);
DROP TABLE IF EXISTS d_item;
CREATE TABLE d_item(//这个订单条目表
id int(12) NOT NULL auto_increment,
order_id int(10) NOT NULL,
product_id int(10) NOT NULL,
product_name varchar(100) NOT NULL,
dang_price double NOT NULL,
product_num int(10) NOT NULL,
amount double NOT NULL,
PRIMARY KEY(id)
)
DROP TABLE IF EXISTS d_order;
CREATE TABLE d_order(//订单表
id int(10) NOT NULL auto_increment,
user_id int(10) NOT NULL,
status int(10) NOT NULL,
order_time bigint(20) NOT NULL,
order_desc varchar(100) default NULL,
total_price double NOT NULL,
receive_name varchar(100) default NULL,
full_address varchar(200) default NULL,
postal_code varchar(8) default NULL,
mobile varchar(20) default NULL,
phone varchar(20) default NULL,
PRIMARY KEY(id)
) ENGINE=InnoDB;
DROP TABLE IF EXISTS d_receive_address;
CREATE TABLE d_receive_address(//收件人信息表
id int(12) NOT NULL auto_increment,
user_id int(11) NOT NULL,
receive_name varchar(20) NOT NULL,
full_address varchar(200) NOT NULL,
postal_code varchar(8) NOT NULL,
mobile varchar(15) default NULL,
phone varchar(20) default NULL,
PRIMARY KEY(id)
) ENGINE=InnoDB;
insert into d_receive_address values(1, 6,'Java','sun.cn','10000800','12345','67890');
insert into d_receive_address values(2, 6,'JavaJavaJava','ibm.cn','10000600','12345','67890');
DROP TABLE IF EXISTS d_user;
CREATE TABLE d_user(//用户表,用户信息
id int(12) NOT NULL auto_increment,
email varchar(50) NOT NULL,
nickname varchar(50) default NULL,
password varchar(50) NOT NULL,
user_integral int(12) NOT NULL default'0',
is_email_verify char(3),
email_verify_code varchar(50) default NULL,
last_login_time bigint default NULL,
last_login_ip varchar(15) default NULL,
PRIMARY KEY(id),
UNIQUE KEY email(email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
jsp简单的购物车代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于JSP的购物车功能、jsp简单的购物车代码的信息别忘了在本站进行查找哦。