code学习

java轻松实现购物车(HashMap技术实现购物车)

烟台网站建设中越来越多的朋友开始选择java技术实现自己的网站,oa,商城,做商城必须考虑的一个技术点就是购物车的实现,有人选择字符串截取方式,然后记录入session ,有人选择java的类  用对类的元素的增删读改实现购物车物品的维护,下面为大家带来一种不同的方式:hashmap购物车

购物车代码(Servlet处理段):

public void doGet(HttpServletRequest request, HttpServletResponse response)

   throws ServletException, IOException {

  response.setContentType("text/html;charset=UTF-8");

  PrintWriter out = response.getWriter();

  request.setCharacterEncoding("UTF-8");

  //声明会话对象

  HttpSession session = request.getSession();

  //接收超链接传过来的参数

  String foodId = request.getParameter("foodId");

  //为了避免覆盖,先获得购物车对象

  HashMap cart = (HashMap)session.getAttribute("cart");

  //如果购物车不存在,则创建购物车

  if (cart == null) {

   cart = new HashMap();

   //将购物车存入会话中

   session.setAttribute("cart", cart);

  }

  //判断商品是否在购物车中

  if (cart.get(foodId) == null) {

   //如果不在,创建一个条目到购物车中

   cart.put(foodId, 1);

  } else {

   //如果在,更新其数量

   int num = Integer.parseInt(cart.get(foodId).toString())+1;

   cart.put(foodId, num);

  } 

  //在此将购物车保存到会话中

  session.setAttribute("cart", cart);

  //跳转页面

  response.sendRedirect("/RestaurantSys/shopCart.jsp");

  out.flush();

  out.close();

 }

记住:其中,foodId为超链接传过来的参数。

大家在参看购物车的jsp中,写如下代码:

  <%!double total = 0; %>

  <%

   HashMap cart = (HashMap)session.getAttribute("cart");

   Object[] isbn = cart.keySet().toArray();

   for (int i = 0; i < isbn.length; i++) {

    DBOperate dbo = new DBOperate();

    dbo.getCon();

    FoodBean fBean = (FoodBean)dbo.searchFoodInfo(isbn[i].toString());

    int num = Integer.parseInt(cart.get(isbn[i]).toString());

    double price = fBean.getFoodPrice();

    double sum = price * num;

    total += sum;

   %>

  <tr>

    <td><div align="center" class="STYLE1"><%=isbn[i] %></div></td>

    <td><div align="center" class="STYLE1"><%=fBean.getFoodName() %></div></td>

    <td><div align="center" class="STYLE1">¥<%=new DecimalFormat("0.00").format(price) %></div></td>

    <td><div align="center" class="STYLE1"><%=num %></div></td>

    <td><div align="center" class="STYLE1">¥<%=new DecimalFormat("0.00").format(sum) %></div></td>

  </tr>

  <%} %>

好啦,代码分享完毕,欢迎大家访问我的网站有技术问题  可以相互交流http://www.gongyingwl.com/

继续阅读