首先,建3个实体类,如下:package entity;//订单类import java.util.Date;public class Order {private String orderId;//订单编号private OrderItem[] items;//订单项private Date date;//订单时间private Float total;//订单总额public Float getTotal() {return total;}public void setTotal(Float total) {this.total = total;}public String getOrderId() {return orderId;}public void setOrderId(String orderId) { this.orderId = orderId;}public OrderItem[] getItems() {return items;}public void setItems(OrderItem[] items) { this.items = items;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}}package entity;//订单项,为了方便拓展public class OrderItem {private Product product;//商品private Integer number;//购买数量public OrderItem(Product product, Integer number) {this.product = product;this.number = number;}public Product getProduct() {return product;}public void setProduct(Product product) {this.product = product;}public Integer getNumber() {return number;}public void setNumber(Integer number) {this.number = number;}}package entity;//产品信息public class Product {private String name;private String image;private Integer id;private Float price;public Product(String name, String image, Integer id, Float price) { = name;this.image = image;this.id = id;this.price = price;}public String getName() {return name;}public void setName(String name) { = name;}public String getImage() {return image;}public void setImage(String image) {this.image = image;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Float getPrice() {return price;}public void setPrice(Float price) {this.price = price;}}接下来就是处理了:package util;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;import javax.servlet.http.HttpSession;import entity.Order;import entity.OrderItem;import entity.Product;public class ShoppingCart {public static Product[] init() {Product[] product = new Product[3];Product p1 = new Product("Struts Web", "struts.jpg", 1, 80.5F);Product p2 = new Product("Hibernate开发与实践", "hibernate.jpg", 2, 60.5F);Product p3 = new Product("Struts Spring Hibernate", "spring.jpg", 3, 90.5F);product[0] = p1;product[1] = p2;product[2] = p3;return product;}/*** @param pId 商品id,商品编号* @return*/public Product getProduct(Integer pId){Product[] product = init();return product[pId-1];}/*** 加入购物车* @param pId 商品编号* @param number 购买数量* @param session 会话对象*/public void put(Integer pId,Integer number,HttpSession session){Map<Integer, OrderItem> map = (Map)session.getAttribute("item");;//获取session对象if(map==null){//第一次先构造对象map = new HashMap<Integer, OrderItem>();}if(map.get(pId)==null){Product product = getProduct(pId);//产品信息OrderItem orderItem = new OrderItem(product, number);//获取orderItemmap.put(pId, orderItem);System.out.println("宝贝名称:"+orderItem.getProduct().getName()+" 宝贝购买数量: "+orderItem.getNumber());}else{OrderItem orderItem = map.get(pId);//获取orderItemProduct product = orderItem.getProduct();if(product.getId().equals(pId)){//同一本书重新购买,需要再加上numberorderItem.setNumber(number+orderItem.getNumber());System.out.println("商品名称:"+orderItem.getProduct().getName()+" 购买数量: "+orderItem.getNumber());}}session.setAttribute("item", map);}public Order showOrder(HttpSession session){Order order = null;//获取sessionMap<Integer, OrderItem> map = (Map<Integer, OrderItem>)session.getAttribute("item");if(map!=null&&map.size()>0){OrderItem[] items = new OrderItem[map.size()];//构造数组,长度是map的长度Set<Integer> set = map.keySet();Iterator<Integer> iterator = set.iterator();//迭代器对象int i = 0;while (iterator.hasNext()) {Integer key = (Integer) iterator.next();//一个个取出key/* System.out.println(key);*/items[i] = map.get(key);//给orderIte添加元素i++;}order = new Order();order.setDate(new Date());//设置时间order.setItems(items);//订单项:产品信息,数量order.setOrderId("01");//编号order.setTotal(total(items));//总价System.out.println(order.getTotal());}return order;}public static float total(OrderItem[] items ){float number = 0;for(OrderItem orderItem : items){number+= orderItem.getNumber()*orderItem.getProduct().getPrice();//计算总价}return number;}}//最后jsp页面自己去设计了,大致思路就是上面这样…。