購物車操作

          Posted on 2008-09-01 00:04 橡皮人 閱讀(173) 評論(0)  編輯  收藏
            近期剛完成二期的結業項目電子圖書,其中主要訓練的模塊是購物車,后臺發布前臺顯示,代碼寫的非常粗糙,JSP頁面沒有使用EL和JSTL,大片大片的<% %>。
            首先就其中購物車的增刪改和清空購物車做一個筆記。
           
          CartBean:
          package com.csthit.store.vo;

          public class CartBean {
              
              
          private Book book; //圖書bean
              private int quantity; //設置圖書數量
              
              
          public Book getBook() {
                  
          return book;
              }
              
          public void setBook(Book book) {
                  
          this.book = book;
              }
              
          public int getQuantity() {
                  
          return quantity;
              }
              
          public void setQuantity(int quantity) {
                  
          this.quantity = quantity;
              }
             
          }
          上面是對購物車的bean組件,下面放置幾個對cart進行增刪改清空的Servlet代碼
          String action = request.getParameter("action");  //獲得JSP頁面的動作參數
                  HttpSession session = request.getSession(); //獲取一個Session對象    
                  String isbn = request.getParameter("isbn"); //以圖書的ISBN為條件查詢圖書
                  
                  
          /*
                   * 添加一本書籍到購物車
                   
          */
                  
          if("add".equals(action)) {
                      String num 
          = request.getParameter("num");  //JSP頁面傳遞的數量參數,默認為1
                      int quantity = Integer.parseInt(num); 
                      BookDAO bookdao 
          = new BookDAO(); 
                      Book book 
          = bookdao.queryByISBN(isbn);
                      CartBean cb 
          = null;
                      Map map 
          = null;
                      
          if(session.getAttribute("MYCART")!=null) {
                          map 
          = (HashMap)session.getAttribute("MYCART");
                          
          if(map.get(isbn)!=null) {
                              cb 
          = (CartBean)map.get(isbn);
                              cb.setQuantity(cb.getQuantity()
          +quantity);
                          } 
          else {
                              cb 
          = new CartBean();
                              cb.setBook(book);
                              cb.setQuantity(quantity);
                          }
                          map.put(isbn, cb);
                      } 
          else {
                          
                          map 
          = new HashMap();
                          cb 
          = new CartBean();
                          cb.setBook(book);
                          cb.setQuantity(quantity);
                          map.put(isbn, cb);
                          
                      }
                      
                      session.setAttribute(
          "MYCART", map);
                      
                      RequestDispatcher rd 
          = request.getRequestDispatcher("view_cart.jsp");  
                      rd.forward(request, response);
                  
                  }
                  
                  
          /*
                   * 修改購物車數量
                   
          */
                  
          if("modify".equals(action)) {
                      String num 
          = request.getParameter("num");
                      
          int quantity = Integer.parseInt(num);
                      Map map 
          = (Map)session.getAttribute("MYCART");
                      CartBean cb 
          = null;
                      
          if(quantity==0) {  //客戶端如果把數量修改為0則刪除當前書籍
                          map.remove(isbn);
                      } 
          else {
                          
                          cb 
          = (CartBean)map.get(isbn);
                          cb.setQuantity(quantity);
                          map.put(isbn, cb);
                      }
                      
                      
                      session.setAttribute(
          "MYCART", map);
                      
                      RequestDispatcher rd 
          = request.getRequestDispatcher("view_cart.jsp");
                      rd.forward(request, response);
                      
                  }
                  
                  
          /*
                   * 刪除商品
                   
          */
                  
          if("delete".equals(action)) {
                      Map map 
          = (Map)session.getAttribute("MYCART");
                      map.remove(isbn);
                      session.setAttribute(
          "MYCART", map);
                      RequestDispatcher rd 
          = request.getRequestDispatcher("view_cart.jsp");
                      rd.forward(request, response);
                  }
                  
                  
          /*
                   * 清空購物車,使Map的key長度為0
                   
          */
                  
          if("remove".equals(action)) {
                      
                      Map map 
          = (HashMap)session.getAttribute("MYCART");
                      Object[] keys 
          = map.keySet().toArray();
                      
          for (int i = 0; i < keys.length; i++) {
                          map.remove((String)keys[i]);
                      }
                      
                      session.setAttribute(
          "MYCART", map);
                      RequestDispatcher rd 
          = request.getRequestDispatcher("view_cart.jsp");
                      rd.forward(request, response);
                  }

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          posts - 28, comments - 5, trackbacks - 0, articles - 0

          Copyright © 橡皮人

          主站蜘蛛池模板: 天台县| 通州区| 无极县| 凤阳县| 天门市| 临海市| 宁城县| 正宁县| 明水县| 滨海县| 石泉县| 东海县| 宁阳县| 克东县| 阿鲁科尔沁旗| 松原市| 科尔| 镇坪县| 阳西县| 益阳市| 吉首市| 原平市| 黄陵县| 烟台市| 论坛| 永善县| 禹州市| 凤阳县| 南郑县| 全椒县| 麟游县| 龙岩市| 察雅县| 乌审旗| 岳阳市| 百色市| 宜宾县| 青神县| 桓仁| 丁青县| 筠连县|