请问大家 ,购物车中用java是如何保存订单的信息,用了什么机制来实现的?

解决方案 »

  1.   

    cookie只能在自己的机子上执行 ,如果换了台机子或者机子有还原的机制的话,就不会存在session和cookie了
      

  2.   

    看你购物车能保存多久,一般是session+cookie
    当然你也可以加入数据库,比如淘宝。
      

  3.   

    session=ActionContext.getContext().getSession();
    session.put("shoppingCar",shoppingCar);
      

  4.   

    session=ActionContext.getContext().getSession();
    session.put("shoppingCar",shoppingCar);
      

  5.   

    建议用session存放要购买的商品id和数量。每次访问购物车,就根据这个id来查找商品的信息并显示。
    你也可以创建一个购物车表,就不用session存放商品的id和数量了,这样相对于session来说更容易实现。
    也可以用cookie。操作跟session类似。
    不过各有各的好处和坏处。用session会耗服务器的内存,用数据库会影响数据库性能。cookie不安全,而且可以清空。
      

  6.   

    session,你在jsp页面用标签取也很方便。用数据库也不错。
      

  7.   

    session可以,数据库也可以,要看用户数和场景。
      

  8.   


    推荐楼主看下这个:
    http://blog.csdn.net/cooliceman/article/details/3096081
    如果不看我把把代码复制出来你看看:
    *       开发一个WEB应用,用户通过一个JSP页面car.jsp选择商品提交给add.jsp,该文件负责将商品添加到用户session对象中(相当于用户的购物车),并将session对象中商品显示给用户,用户通过selectRemovedGoods.jsp文件选择要从购物车中删除的商品提交给removeWork.jsp,该文件负责从用户的购物车中删除商品。在网上看到很多人都是用JSP+JAVABEAN实现的此功能,但是这个题目被要求只能用session和Hastable或vector,所以只好自己写了,这是本人写的程序,希望可以和大家分享和共同学习!以下是各个JSP页面的内容                car.jsp<%@ page contentType="text/html;charset=GB2312"%>
    <html>
    <head></head>
    <body>
    <%
    session.getId();
    %>
    <form name="f" method="post" action="add.jsp">
    <p>这里是第一百货商场,选择您要购买的商品添加到购物车:</p>
    <p><select name="selection" >
    <option value="电视机">电视机</option>
    <option value="电冰箱">电冰箱</option>
    <option value="空调">空调</option>
    <option value="笔记本电脑">笔记本电脑</option>
    <option value="水果">水果</option>
    <option value="可口可乐">可口可乐</option>
    </select>
    <p>输入购买的数量:
    <input type="text" name="mount" width="10" value="" align="center"></p>
    <p>选择计量单位:
    <input type="radio" name="r" value="个">个
    <input type="radio" name="r" value="公斤">公斤
    <input type="radio" name="r" value="台" checked>台
    <input type="radio" name="r" value="瓶">瓶
    <input type="submit" name="s1" value="添加到购物车">
    </p>
    </form>
    <form name="f2" action="selectRemovedGoods.jsp" method="post">
    <p>您的购物车中有如下货物:</p>
    <p><input type="submit" name="b" value="修改购物车中的货物"></p>
    </form>
    </body>
    </html>                        add.jsp<%@ page contentType="text/html;charset=GB2312"%>
    <%@ page import="java.util.*"%>
    <html>
    <head>
    </head>
    <body>
    <form name="form1" action="car.jsp" method="get">
    <%!
    String s,m,u;
    Hashtable h=new Hashtable();
    int j=0;
     synchronized void getMes(String i,String s)
    {
     j++;
     h.put(i,s);
    }
    %>
    <%
    request.setCharacterEncoding("gb2312");
    s=request.getParameter("selection");
    m=request.getParameter("mount");
    u=request.getParameter("r");
    if(m.equals(""))
    response.sendRedirect("car.jsp");
    String str="Name:"+s+"#"+"Mount:"+m+"#"+"Unit:"+u+"<br>";
    if(s.equals("电视机"))
    getMes("电视机",str);
    if(s.equals("电冰箱"))
    getMes("电冰箱",str);
    if(s.equals("空调"))
    getMes("空调",str);
    if(s.equals("笔记本电脑"))
    getMes("笔记本电脑",str);
    if(s.equals("水果"))
    getMes("水果",str);
    if(s.equals("可口可乐"))
    getMes("可口可乐",str);
    session.setAttribute("Mes",h);
    Enumeration ve=((Hashtable)session.getAttribute("Mes")).elements();
    out.println("您的购物车有如下商品:"+"<br>");
     while(ve.hasMoreElements())
                { String message=ve.nextElement().toString();
                  StringTokenizer fenxi=new StringTokenizer(message,"#");
                    while(fenxi.hasMoreTokens())
                         { String st=fenxi.nextToken();
       out.print(" "+st);
                        }
      }
    %>
    <p>
    <input type="submit" value="继续购物">
    </p>
    </form>
    <form name="form2" action="selectRemovedGoods.jsp" method="get">
    <p>
    <input type="submit" value="修改购物车中的物品">
    </form>
    </body>
    </html>                        selectRemovedGoods.jsp<%@ page contentType="text/html;charset=GB2312"%>
    <%@ page import="java.util.*"%>
    <html>
    <head>
    </head>
    <body>
    <form name="f1" method="post" action="removeWork.jsp" >
    <p>选择你要从购物车中删除的物品:</p>
    <p><select name="select" ><%
    Enumeration e=((Hashtable)session.getAttribute("Mes")).keys();while(e.hasMoreElements()){
      String message=e.nextElement().toString();
      out.println("<option value="+message+">"+message+"</option>");
      
    }
    %>
    </select>
    <input type="submit" name="sub" value="提交删除"></p><%
    Enumeration m=((Hashtable)session.getAttribute("Mes")).elements();
    out.println("您的购物车有如下商品:"+"<br>");
     while(m.hasMoreElements())
                {                 String message=m.nextElement().toString();
                  StringTokenizer fenxi=new StringTokenizer(message,"#");
                    while(fenxi.hasMoreTokens())
                         {                                String st=fenxi.nextToken();
                                   out.print(" "+st);
                        }
      }
    %>
    </form>
    <form name="form2" action="car.jsp">
    <p>
    <input type="submit" value="继续购物">
    </p></body>
    </html>                            removeWork.jsp<%@ page contentType="text/html;charset=GB2312"%>
    <%@ page import="java.util.*"%>
    <html>
    <head></head>
    <body>
    <form name="form1" action="car.jsp">
    <%
    request.setCharacterEncoding("gb2312");
    String s=request.getParameter("select");out.println("您删除了货物:"+s);
    out.println("<br>购物车中现在的货物:<br>");
    Hashtable h=(Hashtable)session.getAttribute("Mes");
    h.remove(s);Enumeration ve=((Hashtable)session.getAttribute("Mes")).elements();
    while(ve.hasMoreElements())
                {                 String message=ve.nextElement().toString();
                  StringTokenizer fenxi=new StringTokenizer(message,"#");
                    while(fenxi.hasMoreTokens())
                         {                             String st=fenxi.nextToken();
                               out.print(" "+st); 
                          }
                  }
    %>
    <p><input type="submit" name="sub" value="继续购物"></p>
    </form>
    </body>
    </html>