/**

*用户登录

*

*@

*/

(){

//用户登录的时候,去读取,并且进行持久话操作,更多的登录操作这里省略啦....

();

}

/**

*加入购物车br我的Java学习交流QQ群:我们一起学Java!

*============================================br

*用户登录前:br

*用户在选择现金券的时候,点击现金券的加入购物车的时候,会把该现金券的信息(现金券的id,购买数量)br

*传递到这里,这时候,后台要做的就是从中查询出是否有相同的记录,如果有相同的记录br

*则把相应的记录更新;否则,就添加新的记录br

*用户登录后:br

*用户在登录后,如果有添加购物车操作,则不用保存到中,而是直接持久化购物车信息br

*

*@

*/

publicvoidaddToShoppingCart()throwsException{

if(cashTicket==null||cashTicket.getId()==null||cashTicket.getId()1){

write(nullId);

}elseif(q==null||q==){

//购买数量,默认情况下面为1

q=String.valueOf(1);

}else{

//读取所有的cookie

Cookiecookies[]=ServletActionContext.getRequest().getCookies();

if(cookies==null||cookies.length0){

//没有cookie

System.out.println(thereisnoanycookie..);

}else{

//判断用户是否登录

if(getUserInSession()==null){

booleanflag=true;

for(Cookiec:cookies){

if(c.getName().equals(Conf.IDUONA_CASHTICKET_COOKIE_STARTNAME+cashTicket.getId())){

//说明已有的cookies中有相应的cookie,就进行更新操作

IntegeroldValue=Integer.valueOf(c.getValue());

IntegernewValue=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,这时就持久化购物车信息

CashTicketcashTicketTemp=cashTicketService.get(cashTicket.getId());

if(shoppingCartService.isExistUserAndCashTicket(getUserInSession(),cashTicketTemp)){

ShoppingCartoldShoppingCart=shoppingCartService.getByUserAndCashTicket(getUserInSession(),cashTicketTemp);

oldShoppingCart.setAmount(oldShoppingCart.getAmount()+Integer.valueOf(q));

if(shoppingCartService.update(oldShoppingCart)){

write(success);

}

}else{

ShoppingCartshoppingCartTemp=newShoppingCart();

shoppingCartTemp.setAmount(Integer.valueOf(q));

shoppingCartTemp.setUser(getUserInSession());

shoppingCartTemp.setCashTicket(cashTicketTemp);

shoppingCartTemp.setCreateTime(newDate());

shoppingCartTemp.setStatusType(StatusType.POSITIVE);

shoppingCartTemp.setUuid(UUID.randomUUID().toString());

if(shoppingCartService.save(shoppingCartTemp)){

write(success);

}

}

}

}

}

}

/**

*从cookie中读取购物车信息

*

*@throwsException

*@return

*/

publicvoidreadShoppingCartFromCookie()throwsException{

System.out.println(======================================================);

Cookiecookies[]=ServletActionContext.getRequest().getCookies();

if(cookies==null||cookies.length0){

//System.out.println(thereisnoanycookie..);

//没有cookie

}else{

for(Cookiec:cookies){

System.out.println(hahatherearemanycookies:+c.getName()++c.getValue());

}

}

}

/**

*添加cookie操作

*

*@paramname

*cookie的name

*@paramvalue

*cookie的value

*/

publicvoidaddCookie(Stringname,Stringvalue){

Cookiecookie=newCookie(name.trim(),value.trim());

cookie.setMaxAge(2*60*60*1000);//设置为2个钟

ServletActionContext.getResponse().addCookie(cookie);

}

/**

*更新cookie操作

*

*@paramc

*要修改的cookie

*@paramvalue

*修改的cookie的值

*/

publicvoidfixCookie(Cookiec,Stringvalue){

c.setValue(value.trim());

c.setMaxAge(2*60*60*1000);//设置为2个钟

ServletActionContext.getResponse().addCookie(c);

}

/**

*当用户登录的时候,持久化cookie中的购物车信息,更新为本用户的购物车信息

*/

publicvoidperistShoppingCartWhenUserLogin(Useruser){

if(null!=user){

Cookiecookies[]=ServletActionContext.getRequest().getCookies();

if(cookies!=null){

for(Cookiec:cookies){

if(c.getName().startsWith(Conf.IDUONA_CASHTICKET_COOKIE_STARTNAME)){

//获取cookie的名称:iduona_cashTicket_45和cookie的值:21

Stringname=c.getName();

Integeramount=Integer.valueOf(Integer.valueOf(c.getValue())+Integer.valueOf(q));

Integerct_id=Integer.valueOf(name.substring(name.lastIndexOf(_)+1));

CashTickettemp=cashTicketService.get(ct_id);

ShoppingCartshoppingCartTemp=newShoppingCart();

if(null!=temp){

if(shoppingCartService.isExistUserAndCashTicket(user,temp)){

//进行更新操作

ShoppingCartoldShoppingCart=shoppingCartService.getByUserAndCashTicket(user,temp);

oldShoppingCart.setAmount(amount);

shoppingCartService.update(oldShoppingCart);

}else{

//否则进行保存记录

shoppingCartTemp.setAmount(amount);

shoppingCartTemp.setUser(user);

shoppingCartTemp.setCashTicket(temp);

shoppingCartTemp.setCreateTime(newDate());

shoppingCartTemp.setStatusType(StatusType.POSITIVE);

shoppingCartTemp.setUuid(UUID.randomUUID().toString());

shoppingCartService.save(shoppingCartTemp);

}

}

}

}

//移除所有的现金券cookies

removeAllCookies();

}

}

}

/**

*移除所有的现金券cookies操作

*/

publicvoidremoveAllCookies(){

Cookiecookies[]=ServletActionContext.getRequest().getCookies();

if(cookies==null||cookies.length0){

//没有cookie

System.out.println(thereisnoanycookie..);

}else{

System.out.println(开始删除cookies..);

for(Cookiec:cookies){

if(c.getName().startsWith(Conf.IDUONA_CASHTICKET_COOKIE_STARTNAME)){

c.setMaxAge(0);//设置为0

ServletActionContext.getResponse().addCookie(c);

}

}

}

}

效果:

用户没有登录的情况下

用户登录了以后:

数据库里面的情况:

Java购物车前端代码_java web实现购物车功能的java购物车代码示例代码相关推荐

  1. java 集合数组 例子_Java数组元素去重(不使用集合)(示例代码)

    /* * 需求:去除整型数组中重复的元素,不能使用集合等方法 * * 解决思路: * 1.对数组中的元素进行从小到大的顺序排序 * 2.获取数组中重复元素的个数 * 3.获取数组中重复元素的索引位置, ...

  2. Java EasyExcel在Web网站中读写Excel的方法及示例代码

    使用EasyExcel可以更容易简单在Web网站中读写Excel,本文主要介绍在Java Web网站中读写Excel方法及示例代码. 原文地址:Java EasyExcel在Web网站中读写Excel ...

  3. java web购物车代码_java web开发之购物车功能实现示例代码

    之前没有接触过购物车的东东,也不知道购物车应该怎么做,所以在查询了很多资料,总结一下购物车的功能实现. 查询的资料,找到三种方法: 1.用cookie实现购物车: 2.用session实现购物车: 3 ...

  4. java web是前端吗_Java Web 是前端还是后端?

    Java Web 是前端还是后端? Java Web是属于后端,Java Web就是用Java技术开发的Web应用,而Java是一种可以编写跨平台应用软件.完全面向对象的高级程序设计语言,一般常用于后 ...

  5. java wed登录面 代码_java web 登录界面

    JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标 ...

  6. flask实现后台java实现前端页面_java实现telnet功能,待实现windows下远程多机自动化发布软件后台代码...

    java实现telnet功能,待实现windows下远程多机自动化发布软件后台代码 package com.org.softwore.util; import java.io.IOException; ...

  7. javaweb 图书管理系统完整代码_Java Web安全代码审计(一)

    点击上方"凌天实验室"可订阅哦! 信息安全的75%发生在web应用而非网络层. 本篇内容涉及Java Web安全-代码审计,非战斗人员速速离开. 1JavaWeb 安全基础 1. ...

  8. java动态创建bean的意义_java相关:Spring Boot如何动态创建Bean示例代码

    java相关:Spring Boot如何动态创建Bean示例代码 发布于 2020-3-20| 复制链接 摘记: 前言本文主要给大家介绍了关于Spring Boot动态创建Bean的相关内容,分享出来 ...

  9. java 奇数中文乱码_java web 乱码 整理

    众所周知 java 程序使用的是Unicode 编码字符集,是说java内存里面使用Unicode字符集操作文字,java内存外当然使用的是程序员自己制定的字符集,如果程序员没有指定字符集,那么会使用 ...

  10. java度量衡换算器代码_Java开发笔记(四)Java帝国的度量衡

    秦始皇统一中国之后,实行"书同文,车同轨",把货币和各种度量衡都统一起来,从而缔造了一个秩序井然的帝国.既然统一度量衡是每个帝国都要做的事情,Java帝国也不例外,对于人生地不熟的 ...

最新文章

  1. 动态环境下的SLAM:DynaSLAM 论文学习笔记
  2. linux openwrt插件,OpenWrt添加软件包(一)
  3. 安卓开发:关于适配的问题
  4. Hadoop在Ubuntu下的安装配置(配置成功)
  5. leetcode -day8 Copy List with Random Pointer Single Number I II
  6. OpenCASCADE:Modeling Algorithms模块之布尔运算
  7. java 减法_java 加减法2
  8. xenserver命令启动虚拟机
  9. cus.crm.myaccounts.util.Util.isIntentSupported
  10. python编程教程if_Python编程:从入门到实践——【作业】——第五章(if语句)...
  11. 计算机指纹识别的原理步骤,指纹识别原理和过程
  12. 聊聊UI的扁平化设计趋势与拟物化设计
  13. 中国象棋《棋经论》及象棋布局歌诀,值得研究、细细品味
  14. 申城最浪漫的法国普卢旺司餐厅--Bistro Latitude
  15. 淘宝直通车辅助工具系统使用教程
  16. linux scp 自动备份,linux Oracle 自动备份并scp
  17. 卡尔曼滤波最完整公式推导
  18. java开发程序员培训班,成功跳槽阿里!
  19. 如何选择适合自己的吉他弦(下)
  20. 6 Processes 下

热门文章

  1. 新手日入200➕,必备的5类短视频自媒体工具分享,抓紧收藏
  2. 临汾一中2021高考成绩查询,临汾一中举行2021届高三年级高考百日誓师大会
  3. python的沙盒环境--virtualenv
  4. html5上传steam,Steam 上的 HTML5 Javascript Game Engine
  5. Leetcode 503:下一个更大元素 II(超详细的解法!!!)
  6. AVRmega16单片机的前世今身以及应用开发
  7. qrc支持html吗,vimwikiqrc
  8. Untiy3d-unity游戏性能优化-详细介绍
  9. 《0day安全》堆溢出利用(下)——代码植入
  10. php抓取dom处理后数据,写爬虫时PHP解析HTML最高效的方法那就是用DomCrawler!