问答详情
源自:2-10 添加商品进购物车

有点疑问,我每次改变一次Session里的值,我都会重新设置

Cart cart=(Cart)request.getSession.getAttribute("cart");不是获取了Session对象,然后转变了Cart对象吗,调用完addGoodsInCaer方法,改变了Cart里面的值,不用再request.getSession.setAttribute("cart",cart)吗?还是说一开始获取的Cart对象就是Session对象?会随的Cart的改变,Session跟着改变?

提问者:夏季相见不Ru懷念3211604 2016-07-31 21:48

个回答

  • 慕勒3175023
    2016-07-31 22:19:28
    已采纳

    我理解的是session中的值是动态的,不需要覆盖保存,不像cookie里的值变了就要重新覆盖保存

  • qq_啤酒泡泡_1
    2016-08-05 11:41:32

    if(request.getSession().getAttribute("cart")==null)

    {

    Cart cart = new Cart();

    request.getSession().setAttribute("cart",cart);

    }

    Cart cart = (Cart)request.getSession().getAttribute("cart");

    if(cart.addGoodsInCart(item, Integer.parseInt(number)))

    {

    return true;

    }

    else

    {

    return false;

    }

    一次会话中最多只会创建一个Cart对象,以键值对的形式保存在session里(值是object类型),你通过键值得到的还是那个对象,不需要覆盖保存。