最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mvc架構(gòu)實現(xiàn)商品的購買(二)

 更新時間:2016年11月16日 11:04:21   作者:scx_white  
這篇文章主要為大家詳細介紹了mvc架構(gòu)實現(xiàn)商品購買功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在上篇文章中 使用了mode1的模型來實現(xiàn)商品的瀏覽,這篇文章在上篇的基礎上,使用mvc架構(gòu)實現(xiàn)商品的購買。
運行結(jié)果:

相對與上篇文章  我們多了購物車類
由于我們在購買物品時,購物車需要的屬性為購買的商品和數(shù)量   所以我們用map的鍵值來保存購買的商品。
當然還有一個總價格,購物車的方法有 添加商品  刪除商品  計算總價格  其中總價格應該在每次添加商品和刪除商品時 重新計算  購物車商品集合  只在初始化購物車的時候?qū)嵗淮渭纯?br />

package entity; 
 
import java.util.HashMap; 
 
public class Cart { 
  //購物車商品集合 
  private HashMap<Items,Integer> cart; 
  //總金額 
  private double totalPrices; 
  public Cart() { 
    cart=new HashMap<Items, Integer>(); 
    totalPrices=0.0; 
  } 
  public HashMap<Items, Integer> getCart() { 
    return cart; 
  } 
  public void setCart(HashMap<Items, Integer> cart) { 
    this.cart = cart; 
  } 
  public double getTotalPrices() { 
    return totalPrices; 
  } 
  public void setTotalPrices(double totalPrices) { 
    this.totalPrices = totalPrices; 
  } 
  //添加物品進購物車 
  public boolean addToCart(Items item,int counts){ 
    //如果當前物品 已經(jīng)添加過 只增加數(shù)量 
    if(cart.containsKey(item)){ 
      cart.put(item, cart.get(item)+counts); 
    }else{ 
      cart.put(item, counts); 
    } 
    //重新計算價格 
    calTotalPrice(item.getPrice()*counts); 
    return true; 
  } 
  //將物品從購物車刪除 
  public boolean removeFromCart(Items item){ 
    if(cart!=null&&cart.containsKey(item)){ 
      calTotalPrice(-item.getPrice()*cart.get(item)); 
      cart.remove(item); 
    } 
    return true; 
  } 
  //計算總金額 
  private void calTotalPrice(double price){ 
    totalPrices+=price; 
  } 
} 

CartServlet的doGett方法根據(jù)action來進行相應的處理

if (request.getParameter("action") != null) { 
      action = request.getParameter("action"); 
 
      if ("add".equals(action)) { // 添加商品 
        if (addGoodsToCart(request, response)) { 
          request.getRequestDispatcher("../success.jsp").forward( 
              request, response); 
        } else { 
          request.getRequestDispatcher("../failure.jsp").forward( 
              request, response); 
        } 
 
      } else if ("show".equals(action)) {// 顯示購物車 
        request.getRequestDispatcher("../cart.jsp").forward(request, 
            response); 
      } else if ("delete".equals(action)) {// 刪除物品 
        deleteGoodFromCart(request, response); 
        request.getRequestDispatcher("../cart.jsp").forward(request, 
            response); 
      } 
    } 

當在商品界面 我們點擊了放入購物車時 將當前商品的編號傳到 購物車的servlet類CartServlet開始處理當前物品 并將當前物品放入購物車

再放入購物車之前 首先判斷是否是第一次創(chuàng)建購物車  (購物車肯定只有一個  不能有多個)如果是第一次創(chuàng)建購物車cart
將當前購物車放入session ,然后通過ItemsDao對象調(diào)用getItemById(id)方法 獲得商品對象  。然后將相應的商品對象 和商品數(shù)量放入購物車

//向購物車添加商品 
  private boolean addGoodsToCart(HttpServletRequest request, 
      HttpServletResponse response) { 
    String id=request.getParameter("id"); 
    String counts=request.getParameter("num"); 
    Items item=dao.getItemById(Integer.parseInt(id)); 
    //判斷是否是第一次創(chuàng)建購物車 
    if(request.getSession().getAttribute("cart")==null){ 
      Cart cart=new Cart(); 
      request.getSession().setAttribute("cart", cart); 
      request.getSession().setAttribute("dao", dao); 
    } 
    Cart cart=(Cart) request.getSession().getAttribute("cart"); 
    //將商品添加到購物車 
    if(cart.addToCart(item, Integer.parseInt(counts))){ 
      return true; 
    }else{ 
      return false; 
    } 
  } 

如果點擊了查看購物車   CartServlet重定向到購物車頁面

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%> 
<%@ page import="entity.Cart" %> 
<%@ page import="entity.Items" %> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
  <base href="<%=basePath%>"> 
  <title>My JSP 'cart.jsp' starting page</title> 
  <meta http-equiv="pragma" content="no-cache"> 
  <meta http-equiv="cache-control" content="no-cache"> 
  <meta http-equiv="expires" content="0">   
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
  <meta http-equiv="description" content="This is my page"> 
  <!-- 
  <link rel="stylesheet" type="text/css" href="styles.css"> 
  --> 
  <link type="text/css" rel="stylesheet" href="css/style1.css" /> 
  <script language="javascript"> 
    function delcfm() { 
      if (!confirm("確認要刪除?")) { 
        window.event.returnValue = false; 
      } 
    } 
  </script> 
 </head> 
  
 <body> 
  <h1>我的購物車</h1> 
  <a href="goods.jsp">首頁</a> >> <a href="goods.jsp">商品列表</a> 
  <hr>  
  <div id="shopping"> 
  <form action="" method="">    
      <table> 
        <tr> 
          <th>商品名稱</th> 
          <th>商品單價</th> 
          <th>商品價格</th> 
          <th>購買數(shù)量</th> 
          <th>操作</th> 
        </tr> 
        <%  
          //首先判斷session中是否有購物車對象 
          if(request.getSession().getAttribute("cart")!=null) 
          { 
        %> 
        <!-- 循環(huán)的開始 --> 
           <%  
             Cart cart = (Cart)request.getSession().getAttribute("cart"); 
             HashMap<Items,Integer> goods = cart.getCart(); 
             Set<Items> items = goods.keySet(); 
             Iterator<Items> it = items.iterator(); 
              
             while(it.hasNext()) 
             { 
              Items i = it.next(); 
           %>  
        <tr name="products" id="product_id_1"> 
          <td class="thumb"><img src="images/<%=i.getPicture()%>" /><a href=""><%=i.getName()%></a></td> 
          <td class="number"><%=i.getPrice() %></td> 
          <td class="price" id="price_id_1"> 
            <span><%=i.getPrice()*goods.get(i) %></span> 
            <input type="hidden" value="" /> 
          </td> 
          <td class="number"> 
            <%=goods.get(i)%>          
          </td>             
          <td class="delete"> 
           <a href="servlet/CartServlet?action=delete&id=<%=i.getId()%>" onclick="delcfm();">刪除</a>                    
          </td> 
        </tr> 
           <%  
             } 
           %> 
        <!--循環(huán)的結(jié)束--> 
         
      </table> 
       <div class="total"><span id="total">總計:<%=cart.getTotalPrices() %>¥</span></div> 
       <%  
        } 
       %> 
      <div class="button"><input type="submit" value="" /></div> 
    </form> 
  </div> 
 </body> 
</html> 

當點擊了刪除商品 CartServlet類調(diào)用刪除商品的方法

// 從購物車刪除商品 
  private boolean deleteGoodFromCart(HttpServletRequest request, 
      HttpServletResponse response) { 
    //從session中獲取購物車對象 
    Cart cart = (Cart) request.getSession().getAttribute("cart"); 
    if (cart != null) { 
      int id = Integer.parseInt(request.getParameter("id")); 
      if (cart.removeFromCart(dao.getItemById(id))) { 
        return true; 
      } 
    } 
    return false; 
 
  } 

邏輯代碼主要如上。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 一文了解Java Log框架徹底搞懂Log4J,Log4J2,LogBack,SLF4J

    一文了解Java Log框架徹底搞懂Log4J,Log4J2,LogBack,SLF4J

    本文主要介紹了一文了解Java Log框架徹底搞懂Log4J,Log4J2,LogBack,SLF4J,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • maven 指定version不生效的問題

    maven 指定version不生效的問題

    這篇文章主要介紹了maven 指定version不生效的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java實現(xiàn)模擬進度計量器

    java實現(xiàn)模擬進度計量器

    這篇文章主要為大家詳細介紹了java實現(xiàn)模擬進度計量器,模擬血壓計實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • Java中正則表達式的使用和詳解(上)

    Java中正則表達式的使用和詳解(上)

    這篇文章主要介紹了Java中正則表達式的使用和詳解,包括匹配驗證驗證email是否正確,在字符串中查詢字符或者字符串的代碼實例,需要的朋友可以參考下
    2017-04-04
  • Java多態(tài)性定義與用法實例詳解

    Java多態(tài)性定義與用法實例詳解

    這篇文章主要介紹了Java多態(tài)性定義與用法,較為詳細的分析了多態(tài)的概念、功能以及java定義與實現(xiàn)面向?qū)ο蠖鄳B(tài)性的相關操作技巧,需要的朋友可以參考下
    2017-09-09
  • SpringBoot中的@Configuration、@MapperScan注解

    SpringBoot中的@Configuration、@MapperScan注解

    SpringBoot中的@Configuration和@MapperScan注解分別用于配置類和Mapper接口的自動掃描,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Idea如何使用System.getenv()獲取環(huán)境變量的值

    Idea如何使用System.getenv()獲取環(huán)境變量的值

    文章介紹了如何在Java中使用`System.getenv()`方法讀取環(huán)境變量的值,并提供了兩種配置環(huán)境變量的方法:啟動項配置和系統(tǒng)環(huán)境變量配置,對于系統(tǒng)環(huán)境變量,文章特別指出需要重啟電腦或程序才能使其生效
    2024-11-11
  • 使用java的注解(用在java類的方法上的注解)方法

    使用java的注解(用在java類的方法上的注解)方法

    這篇文章主要介紹了使用java的注解(用在java類的方法上的注解)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Spring Boot 入門之消息中間件的使用

    Spring Boot 入門之消息中間件的使用

    本篇文章主要介紹了Spring Boot 入門之消息中間件的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Java實現(xiàn)顏色漸變效果

    Java實現(xiàn)顏色漸變效果

    這篇文章主要為大家詳細介紹了Java實現(xiàn)顏色漸變效果的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12

最新評論

祁门县| 静宁县| 荔浦县| 东兴市| 阿尔山市| 文化| 拉萨市| 临湘市| 寻甸| 靖宇县| 成武县| 平陆县| 西峡县| 岗巴县| 呼和浩特市| 河源市| 留坝县| 丹东市| 鸡东县| 当阳市| 鹿邑县| 德阳市| 贺州市| 观塘区| 南阳市| 高唐县| 分宜县| 来安县| 沁水县| 博客| 炉霍县| 安平县| 崇信县| 崇左市| 淮阳县| 朝阳县| 渭源县| 田林县| 三穗县| 凤阳县| 军事|