購物車操作

          Posted on 2008-09-01 00:04 橡皮人 閱讀(171) 評論(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 © 橡皮人

          主站蜘蛛池模板: 襄汾县| 临安市| 农安县| 白玉县| 保靖县| 勐海县| 海门市| 修文县| 施甸县| 高陵县| 祁阳县| 云和县| 穆棱市| 尼勒克县| 乡宁县| 高台县| 咸丰县| 佛山市| 新晃| 高青县| 高雄市| 枞阳县| 西乌| 凌源市| 黄冈市| 德格县| 中卫市| 阿拉善盟| 塔河县| 崇义县| 茌平县| 昌宁县| 晴隆县| 乐东| 山丹县| 锦屏县| 古丈县| 龙游县| 绥棱县| 新和县| 浠水县|