cookie中存放购物车(二)

1.获取cookie中的购物车

public Cart getCartFromCookie() throws Exception{
		cart=null;
		HttpServletRequest request = ServletActionContext.getRequest();
		ObjectMapper mapper=new ObjectMapper();		
		Cookie[] cookies = request.getCookies();
		if(cookies!=null&&cookies.length>0){
			for (Cookie cookie : cookies) {
				if(Constants.BUYER_CART.equals(cookie.getName())){
					//获得购物车存放的cookie
					String value =URLDecoder.decode(cookie.getValue(), "UTF-8");
					if(value==null || !StringUtils.isNotBlank(value)){
						break;
					}
					cart = mapper.readValue(value, Cart.class);	
					break;
				}				
			}			
		}
		return cart;
	}	

2.填充购物车中的数据

public void fullCart(Cart cart){
		//对数据进行填充
		for (CartItem item : cart.getList()) {
			Long id=item.getSku().getId();
			Sku sku= new Sku();
			sku = skuBusi.getSkuById(id);	
			Product product=pbusi.get(sku.getProduct().getId());
			sku.setProduct(product);
			item.setSku(sku);
		}		
	}

3.将购物车返回到cookie中

public void cookieBack(Cart cart) throws Exception{
		HttpServletResponse response = ServletActionContext.getResponse();
		ObjectMapper mapper=new ObjectMapper();
		//将对象放回cookie中
		StringWriter str=new StringWriter();
		try {
			mapper.writeValue(str, cart);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		String value=URLEncoder.encode(str.toString(), "UTF-8");		
		Cookie cookie=new Cookie(Constants.BUYER_CART, value);
		cookie.setPath("/");
		cookie.setMaxAge(60*60*24);		
		response.addCookie(cookie);		
	}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值