久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

javaweb開發之購物車功能實現示例代碼

之前沒有接觸過購物車的東東,也不知道購物車應該怎么做,所以在查詢了很多資料,總結一下購物車的功能實現。

創新互聯成立于2013年,先為曲沃等服務建站,曲沃等地企業,進行企業商務咨詢服務。為曲沃企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

查詢的資料,找到三種方法:

1.用cookie實現購物車;

2.用session實現購物車;

3.用cookie和數據庫(購物車信息持久化)實現購物車;

分析一下這三種方法的優缺點:

1.單純有cookie實現購物車,這樣的購物車不是很理想,設想一下,如果客戶端的瀏覽器把cookie給禁用了,這種方法就會在這里流產…

2.session中保存購物車的信息,這個只是在一個會話中可用,如果用戶沒有登錄,或者說登錄了以后,添加購物車,在關閉瀏覽器或者登出后,之前所添加的購物車通通都流產啦…

3.我這里要說就是這種方法啦…..

主要的流程:

A.用戶登錄前的數據流:用戶在沒有登錄系統的時候,對喜歡的商品進行添加購物車,那么這個時候,我們可以把購物車信息保存到cookie中,這里會涉及到cookie的添加,修改操作;也即如果之前在cookie中不存對應的cookie,則就對cookie進行添加操作。如果在cookie中存在對應的cookie,那么,這時候,就要對cookie進行修改操作了(這里涉及到用戶對同一個商品進行多次添加購物車的情況)。

B.用戶登錄后的數據流:用戶在登錄后,系統首先做的第一件事就是去獲取對應的cookies,如果存在相關的購物車cookies,那么就對該購物車信息進行相應用戶User的持久化操作,要么添加,要么修改。(添加操作:該用戶所對應的購物車如果沒有相應的信息進行添加操作;修改操作:類似的,如果存在對應用戶的購物車信息,就進行修改操作)。用戶登錄后,也可以進行購物車的添加操作,不過,這里不是添加到cookie中,而是直接持久化到數據庫中。注:用戶登錄后的數據都是和數據庫打交道。

代碼部分:

注:

Conf.IDUONA_CASHTICKET_COOKIE_STARTNAME = "iduona_cashTicket_";
/**
   * 用戶登錄
   * 
   * @author hongten
   */
  public void login() {
    //用戶登錄的時候,去讀取cookies,并且進行持久話操作,更多的登錄操作這里省略啦....
    peristShoppingCartWhenUserLogin(newUser);
    }

/**
   * 加入購物車<br> 我的Java學習交流QQ群:589809992 我們一起學Java!
   * ============================================<br>
   * 用戶登錄前:<br>
   * 用戶在選擇現金券的時候,點擊現金券的加入購物車的時候,會把該現金券的信息(現金券的id,購買數量)<br>
   * 傳遞到這里,這時候,后臺要做的就是從cookie中查詢出是否有相同的記錄,如果有相同的記錄<br>
   * 則把相應的記錄更新;否則,就添加新的記錄<br>
   * 用戶登錄后:<br>
   * 用戶在登錄后,如果有添加購物車操作,則不用保存到cookie中,而是直接持久化購物車信息<br>
   * 
   * @throws Exception
   */
  public void addToShoppingCart() throws Exception {
    if (cashTicket == null || cashTicket.getId() == null || cashTicket.getId() < 1) {
      write("nullId");
    } else if (q == null || q == "") {
      // 購買數量,默認情況下面為1
      q = String.valueOf(1);
    } else {
      // 讀取所有的cookie
      Cookie cookies[] = ServletActionContext.getRequest().getCookies();
      if (cookies == null || cookies.length < 0) {
        // 沒有cookie
        System.out.println("there is no any cookie ..");
      } else {
        // 判斷用戶是否登錄
        if (getUserInSession() == null) {
          boolean flag = true;
          for (Cookie c : cookies) {
            if (c.getName().equals(Conf.IDUONA_CASHTICKET_COOKIE_STARTNAME + cashTicket.getId())) {
              // 說明已有的cookies中有相應的cookie,就進行更新操作
              Integer oldValue = Integer.valueOf(c.getValue());
              Integer newValue = Integer.valueOf(oldValue + Integer.valueOf(q));
              fixCookie(c, newValue.toString().trim());
              flag = false;
            }
          }
          // 說明已有的cookies中沒有相應的cookie,就進行添加操作
          if (flag) {
            addCookie(Conf.IDUONA_CASHTICKET_COOKIE_STARTNAME + cashTicket.getId(), q.trim());
          }

          // ==================================================
          // 測試用,讀取所有的cookies
          readShoppingCartFromCookie();
          // ==================================================

          write("success");
        } else {
          // 如果用戶登錄,說明session存在user,這時就持久化購物車信息
          CashTicket cashTicketTemp = cashTicketService.get(cashTicket.getId());
          if (shoppingCartService.isExistUserAndCashTicket(getUserInSession(), cashTicketTemp)) {
            ShoppingCart oldShoppingCart = shoppingCartService.getByUserAndCashTicket(getUserInSession(), cashTicketTemp);
            oldShoppingCart.setAmount(oldShoppingCart.getAmount() + Integer.valueOf(q));
            if (shoppingCartService.update(oldShoppingCart)) {
              write("success");
            }
          } else {
            ShoppingCart shoppingCartTemp = new ShoppingCart();
            shoppingCartTemp.setAmount(Integer.valueOf(q));
            shoppingCartTemp.setUser(getUserInSession());
            shoppingCartTemp.setCashTicket(cashTicketTemp);
            shoppingCartTemp.setCreateTime(new Date());
            shoppingCartTemp.setStatusType(StatusType.POSITIVE);
            shoppingCartTemp.setUuid(UUID.randomUUID().toString());
            if (shoppingCartService.save(shoppingCartTemp)) {
              write("success");
            }
          }
        }
      }
    }
  }

/**
   * 從cookie中讀取購物車信息
   * 
   * @throws Exception
   * @return
   */
  public void readShoppingCartFromCookie() throws Exception {
    System.out.println("======================================================");
    Cookie cookies[] = ServletActionContext.getRequest().getCookies();
    if (cookies == null || cookies.length < 0) {
      // System.out.println("there is no any cookie ..");
      // 沒有cookie
    } else {
      for (Cookie c : cookies) {
        System.out.println("haha there are many cookies :" + c.getName() + "  " + c.getValue());
      }
    }
  }

  /**
   * 添加cookie操作
   * 
   * @param name
   *      cookie的name
   * @param value
   *      cookie的value
   */
  public void addCookie(String name, String value) {
    Cookie cookie = new Cookie(name.trim(), value.trim());
    cookie.setMaxAge(2 * 60 * 60 * 1000);// 設置為2個鐘
    ServletActionContext.getResponse().addCookie(cookie);
  }

  /**
   * 更新cookie操作
   * 
   * @param c
   *      要修改的cookie
   * @param value
   *      修改的cookie的值
   */
  public void fixCookie(Cookie c, String value) {
    c.setValue(value.trim());
    c.setMaxAge(2 * 60 * 60 * 1000);// 設置為2個鐘
    ServletActionContext.getResponse().addCookie(c);
  }

  /**
   * 當用戶登錄的時候,持久化cookie中的購物車信息,更新為本用戶的購物車信息
   */
  public void peristShoppingCartWhenUserLogin(User user) {
    if (null != user) {
      Cookie cookies[] = ServletActionContext.getRequest().getCookies();
      if (cookies != null) {
        for (Cookie c : cookies) {
          if (c.getName().startsWith(Conf.IDUONA_CASHTICKET_COOKIE_STARTNAME)) {
            // 獲取cookie的名稱:"iduona_cashTicket_45" 和 cookie的值: "21"
            String name = c.getName();
            Integer amount = Integer.valueOf(Integer.valueOf(c.getValue())+Integer.valueOf(q));
            Integer ct_id = Integer.valueOf(name.substring(name.lastIndexOf("_") + 1));
            CashTicket temp = cashTicketService.get(ct_id);
            ShoppingCart shoppingCartTemp = new ShoppingCart();
            if (null != temp) {
              if (shoppingCartService.isExistUserAndCashTicket(user, temp)) {
                // 進行更新操作
                ShoppingCart oldShoppingCart = shoppingCartService.getByUserAndCashTicket(user, temp);
                oldShoppingCart.setAmount(amount);
                shoppingCartService.update(oldShoppingCart);
              } else {
                // 否則進行保存記錄
                shoppingCartTemp.setAmount(amount);
                shoppingCartTemp.setUser(user);
                shoppingCartTemp.setCashTicket(temp);
                shoppingCartTemp.setCreateTime(new Date());
                shoppingCartTemp.setStatusType(StatusType.POSITIVE);
                shoppingCartTemp.setUuid(UUID.randomUUID().toString());
                shoppingCartService.save(shoppingCartTemp);
              }
            }
          }
        }
        // 移除所有的現金券cookies
        removeAllCookies();
      }
    }
  }

  /**
   * 移除所有的現金券cookies操作
   */
  public void removeAllCookies() {
    Cookie cookies[] = ServletActionContext.getRequest().getCookies();
    if (cookies == null || cookies.length < 0) {
      // 沒有cookie
      System.out.println("there is no any cookie ..");
    } else {
      System.out.println("開始刪除cookies..");
      for (Cookie c : cookies) {
        if (c.getName().startsWith(Conf.IDUONA_CASHTICKET_COOKIE_STARTNAME)) {
          c.setMaxAge(0);// 設置為0
          ServletActionContext.getResponse().addCookie(c);
        }
      }
    }
  }

效果:

用戶沒有登錄的情況下

java web開發之購物車功能實現示例代碼

用戶登錄了以后:

java web開發之購物車功能實現示例代碼

數據庫里面的情況:

登錄前數據

java web開發之購物車功能實現示例代碼

java web開發之購物車功能實現示例代碼

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。

文章題目:javaweb開發之購物車功能實現示例代碼
本文地址:http://www.js-pz168.com/article20/gojico.html

成都網站建設公司_創新互聯,為您提供網站設計品牌網站建設App開發小程序開發品牌網站設計網站內鏈

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
91精品国产综合久久精品| 亚洲女爱视频在线| 亚洲综合小说图片| 久久66热re国产| av在线亚洲男人的天堂| 亚洲欧洲日韩精品| 日韩欧美亚洲一区二区| 中文字幕制服丝袜一区二区三区| 五月天婷婷综合| 成人黄色在线网站| 日韩精品一线二线三线| 欧美一区二视频| 亚洲精品日日夜夜| 国产成人av自拍| 欧美一区二区综合| 日韩欧美一区二区免费| 亚洲精品少妇30p| 成人一级视频在线观看| 免费av在线一区二区| 欧美乱妇一区二区三区不卡视频| 国产精品人人做人人爽人人添| 三级欧美韩日大片在线看| 99精品桃花视频在线观看| 亚洲日本精品国产第一区| 精品91自产拍在线观看一区| 午夜精品福利一区二区蜜股av| 高清久久久久久| 日韩视频精品| 欧美精品一区男女天堂| 丝袜亚洲精品中文字幕一区| 92国产精品观看| 最近看过的日韩成人| 欧美激情艳妇裸体舞| 久久精品免费看| 久久er99热精品一区二区三区 | 亚洲人一二三区| 国产老妇另类xxxxx| 日本视频一区在线观看| 精品国产制服丝袜高跟| 日韩在线一区二区三区| 国产伦精品一区二区三区免| 欧美美女激情18p| 亚洲伊人伊色伊影伊综合网| 99精品一区二区三区| 在线观看一区日韩| 亚洲欧美国产高清| 99精品黄色片免费大全| 欧美丝袜丝交足nylons| 亚洲精品高清在线观看| 97成人超碰视| 欧美日韩aaa| 亚洲一区二区三区四区在线免费观看 | 精品国产一区二区在线观看| 日韩电影在线观看电影| 久中文字幕一区| 久久婷婷综合激情| 久久成人免费电影| 日韩av一级大片| 欧美国产精品中文字幕| 懂色av一区二区夜夜嗨| 色老综合老女人久久久| 亚洲少妇最新在线视频| 94-欧美-setu| 日韩一区二区精品葵司在线| 免费在线成人网| 视频一区亚洲| √…a在线天堂一区| 91日韩一区二区三区| 91精品国产欧美一区二区成人| 日韩国产欧美在线视频| 久久免费一区| 国产精品三级av| 97精品电影院| 日韩视频一区在线观看| 激情综合网最新| 色素色在线综合| 亚洲影视在线观看| 老司机精品福利在线观看| 国产色产综合色产在线视频| 福利一区二区在线观看| 欧美日韩国产免费一区二区| 天天色综合成人网| 日本最新一区二区三区视频观看| 国产精品萝li| 成人av电影免费| 久久精品视频一区| av福利精品导航| 日韩久久久精品| 粉嫩绯色av一区二区在线观看| 欧美日韩精品高清| 久久国产精品99久久人人澡| 色噜噜久久综合| 日本vs亚洲vs韩国一区三区 | 欧美日韩精品是欧美日韩精品| 天天av天天翘天天综合网色鬼国产 | 理论电影国产精品| 色播五月激情综合网| 午夜精品一区在线观看| 视频在线观看成人| 亚洲国产精品综合小说图片区| 欧美日韩三区四区| 亚洲欧美激情视频在线观看一区二区三区| 国产精品国模大尺度私拍| 久久精品亚洲国产奇米99| av在线不卡网| 久久免费看少妇高潮| av高清不卡在线| 欧美精品一区二区三区在线播放| av电影在线观看完整版一区二区| 日韩欧美成人午夜| 成人av一区二区三区| 亚洲精品一区二区三区精华液| 99国产精品视频免费观看| 久久综合九色综合欧美亚洲| 91在线小视频| 欧美国产丝袜视频| 韩国成人一区| 亚洲精品视频自拍| 亚洲国产精品一区在线观看不卡 | 欧洲久久久久久| 午夜私人影院久久久久| 中文字幕一区二区三区5566| 奇米影视在线99精品| 欧美四级电影在线观看| 国产久卡久卡久卡久卡视频精品| 555夜色666亚洲国产免| 成人动漫在线一区| 久久久久国产精品麻豆| 国产精品日本一区二区| 亚洲精品午夜久久久| 亚洲欧洲国产精品久久| 久久激情五月婷婷| 欧美一区二区三区不卡| 91免费视频网| 亚洲色图都市小说| 亚洲在线播放电影| 久久97超碰国产精品超碰| 日韩一二三区视频| av噜噜色噜噜久久| 亚洲理论在线观看| 一本一道久久a久久精品| 捆绑调教一区二区三区| 日韩一二三四区| 国产精成人品localhost| 亚洲乱码国产乱码精品精98午夜| 亚洲一区精彩视频| 国产一区二区伦理| 久久久一区二区三区| 久久久久久高清| 日韩中文字幕1| 日韩视频免费观看高清完整版 | 在线亚洲人成电影网站色www| 国产一本一道久久香蕉| 久久久久国产精品厨房| 裸模一区二区三区免费| 日韩av电影一区| 9191精品国产综合久久久久久| 成人国产一区二区三区精品| 中日韩免费视频中文字幕| 色播亚洲婷婷| 国产一本一道久久香蕉| 亚洲国产高清在线观看视频| 性欧美videosex高清少妇| 国产一区亚洲一区| 日本一区二区免费在线观看视频| 视频一区国产精品| 国产成人鲁色资源国产91色综| 国产精品素人一区二区| 一区二区视频在线免费| 成人黄色软件下载| 一区二区三区在线观看欧美| 欧美色网一区二区| 成人av资源网| 日本中文字幕一区| 久久综合色天天久久综合图片| 欧美一级日本a级v片| 国产一区二三区| 国产精品午夜电影| 一本久久精品一区二区| 91玉足脚交白嫩脚丫在线播放| 亚洲综合一区在线| 日韩视频不卡中文| 日韩av影视| 成人黄色a**站在线观看| 樱桃视频在线观看一区| 欧美顶级少妇做爰| 六十路精品视频| 国产成人自拍网| 一区二区三区色| 日韩一卡二卡三卡四卡| 日本一区二区三区四区高清视频| 国产一本一道久久香蕉| 亚洲欧美一区二区三区国产精品| 欧美欧美欧美欧美| 精品无人区一区二区三区竹菊| 久久超碰97人人做人人爱| 国产精品国产自产拍高清av| 欧美日本韩国一区二区三区视频| 久久久久久高清| 粉嫩久久99精品久久久久久夜|