您好,欢迎访问一九零五行业门户网

分享一个网上商城实战--购物模块和订单模块

今日任务完成购物模块的功能
完成订单模块的功能
1.1      购物模块:1.1.1    功能演示:商品详情:
购物车模块:
1.1.2    代码实现:1.在商品详情的页面中点击【加入购物车】链及.
2.提交到servlet中:
    * 提交购买的商品的数量.
    * 提交购买的商品的id.
3.将购物的信息存入到session中.
    * 将购物车的信息存入到session中.
    * 购物项对象的封装(购物车中的每个购买商品的信息)
        * 商品的对象:
        * 数量
        * 小计
    * 购物车对象的封装(购买所有商品的信息)
        * 购物项的集合
        * 总计
4.在页面中将购物车的信息获得到.
    * 在页面中显示出来.
【购物项的实体的封装:cartitem】
public class cartitem {private product product;// 购买的商品的信息private int count; // 购买的数量private double subtotal; // 购买商品的小计    public product getproduct() {return product;     }public void setproduct(product product) {this.product = product;     }public int getcount() {return count;     }public void setcount(int count) {this.count = count;     }public double getsubtotal() {return count * product.getshop_price();     }/*public void setsubtotal(double subtotal) {         this.subtotal = subtotal;     }*/}
【购物车的实体:cart】
public class cart {// 定义一个购物项的集合的属性:集合采用map集合,因为移除购物项的时候方便.使用商品的id作为map的key// 使用购物项作为map的value.private map<string,cartitem> map = new linkedhashmap<string,cartitem>();// 定义购物车中的总计:private double total;   public map<string, cartitem> getmap() {return map;     }   public double gettotal() {return total;     }   // 方法:将购物项添加到购物车public void addcart(cartitem cartitem){// 判断购物车中是否已经存在该购物项.string id = cartitem.getproduct().getpid();if(map.containskey(id)){// 如果已经存在:在原来的数量的基础上+新买的数量. 总计发生变化.// 获得购物车中的原来购物项的信息cartitem _cartitem = map.get(id);             _cartitem.setcount(_cartitem.getcount()+cartitem.getcount());         }else{// 如果不存在:在集合中添加一个新的购物项. 总计发生变化.map.put(id, cartitem);         }                 total += cartitem.getsubtotal();             }   // 方法:从购物车中移除购物项public void removecart(string id){// 从map中移除选中的元素.// cartitem cartitem = map.get(id);cartitem cartitem = map.remove(id);// 将总计 - 移除购物项的小计total -= cartitem.getsubtotal();             }   // 方法:清空购物车public void clearcart(){ ////  将map集合清空.map.clear();// 将总结设置为0.total = 0;     } }
【在购物详情页面点击加入购物车的链接】
public string addcart(httpservletrequest req,httpservletresponse resp){// 接收参数:string pid = req.getparameter(pid);int count = integer.parseint(req.getparameter(count));       try {// 封装购物项:cartitem cartitem = new cartitem();// 商品对象:通过商品id查询商品.productservice productservice = (productservice) beanfactory.getbean(productservice);             product product = productservice.findbyid(pid);             cartitem.setproduct(product);             cartitem.setcount(count);// 调用购物车中的添加到购物车的方法:// cart cart = new cart();cart cart = getcart(req);             cart.addcart(cartitem);                         resp.sendredirect(req.getcontextpath()+/jsp/cart.jsp);         } catch (exception e) {             e.printstacktrace();throw new runtimeexception();         }return null;     }
【在购物车页面点击清空购物车】
    public string clearcart(httpservletrequest req,httpservletresponse resp){// 获得购物车对象.cart cart = getcart(req);// 调用购物车中的方法:cart.clearcart();try {             resp.sendredirect(req.getcontextpath()+/jsp/cart.jsp);         } catch (exception e) {             e.printstacktrace();throw new runtimeexception();         }return null;     }
【在购物车页面点击删除链接】
public string removecart(httpservletrequest req,httpservletresponse resp){try {// 接收参数:string pid = req.getparameter(pid);// 获得购物车:cart cart = getcart(req);             cart.removecart(pid);// 页面跳转resp.sendredirect(req.getcontextpath()+/jsp/cart.jsp);         } catch (exception e) {             e.printstacktrace();throw new runtimeexception();         }return null;     }
1.2      订单模块:1.2.1    功能演示:
1.2.2    代码实现:1.2.2.1  创建表和实体:create table `orders` (   `oid` varchar(32) not null,   `ordertime` datetime default null,   `total` double default null,   `state` int(11) default null,   `address` varchar(30) default null,   `name` varchar(20) default null,   `telephone` varchar(20) default null,   `uid` varchar(32) default null,  primary key (`oid`) ) engine=innodb default charset=utf8;  create table `orderitem` (   `itemid` varchar(32) not null,   `count` int(11) default null,   `subtotal` double default null,   `pid` varchar(32) default null,   `oid` varchar(32) default null,  primary key (`itemid`),  key `fk_0001` (`pid`),  key `fk_0002` (`oid`),  constraint `fk_0001` foreign key (`pid`) references `product` (`pid`),  constraint `fk_0002` foreign key (`oid`) references `orders` (`oid`) ) engine=innodb default charset=utf8;
1.2.2.2  生成订单:【在购物车的页面点击提交订单】
提交到servlet:
    * 封装订单和订单项.
    * 调用业务层
    * 清空购物车
    * 页面跳转
以上就是分享一个网上商城实战--购物模块和订单模块的详细内容。
其它类似信息

推荐信息