各位大侠,怎么把查询到的内容提交到购物车
如  书名称   单价    出版社     加入购物车
      A       12      XXX       加入购物车当点击购物车的时候跳到购物车界面
书名称     单价    出版社    
  A        12      XXX 
  下单    继续购物购物车不要用数据库,用session,这样应该怎样设计,各位大侠帮帮忙,急急急!!!

解决方案 »

  1.   

    1.页面
    <a href="add.do?bookId=${bookId}">加入购物车</a>2.action
    String bookId = request.getParameter("bookId");
    Book book = BookFaceFactory.getBookById(bookId);
    List<Book> books = (List<Book>)request.getSession.getAttribut("ShoppingCar");
    if (books == null) {
      List<Book> bookList = new ArrayList<Book>();
      bookList.add(book);
      request.getSession().setAttribute("ShoppingCar",bookList);
    } else {
      if (!books.contains(book)) {
           books.add(book);
       }
      request.getSession().setAttribute("ShoppingCar",books);
    }
      

  2.   


    package com.project.servlet;import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;import com.project.dao.ProductDao;
    import com.project.database.OperatorDataBase;
    import com.project.javabean.ProductEnity;public class ShopCartServlet extends HttpServlet { List<ProductEnity> list = new ArrayList<ProductEnity>();
    ProductDao pd = new ProductDao();
    OperatorDataBase opd = new OperatorDataBase();
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    ResultSet rs = null;
    boolean b = true;
    String id = request.getParameter("pi_id");
    int pi_id = Integer.parseInt(id);
    String sql = "select * from productinformation where pi_id = ?";
    try {
    if(list != null) //如果list不为空,就去找到有没有重复的商品
    {
    for(ProductEnity o : list)
    {
    if(o.getPi_id() == pi_id)
    {
    o.setCount(o.getCount() + 1); //找到了重复的商品就把该商品的原来数量加1
    b = false; //修改了商品的数量,就不再将数据添加到list中
    break;
    }

    }
    }
    if(b)
    {
    rs = opd.executeQuery(sql, pi_id);
    while(rs.next())
    {
    ProductEnity pe = new ProductEnity(rs.getInt(1),rs.getString(2),rs.getInt(3),rs.getInt(4), 1, rs.getString(5));
    list.add(pe);

    }
    }


    } catch (SQLException e) {
    e.printStackTrace();
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }finally
    {
    try {
    opd.close(rs);
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    HttpSession session = request.getSession();
    session.setAttribute("shopcharlist", list);
    session.setAttribute("order", list);
    response.sendRedirect("shopcar.jsp");
    }}/**
    这里只有servlet的代码,其中还有javabean ,dao我就不发了,你就看个思路把, 思路就是,session 中保存的是list,list中保存的是商品表的实体对象,当点击添加到购物侧的时候,把这个商品的ID发送到servlet中,去sesson中去找这个商品ID,如果找到了就把商品数量加1,如果没找到, 就从数据库中查询这个商品的数据,并讲数据BEAN放到list中,list在放到session中,
    **/