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

/**

*用户登录

*

*@

*/

(){

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

();

}

/**

*加入购物车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);

}

}

}

}

效果:

用户没有登录的情况下

用户登录了以后:

数据库里面的情况:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值