关于session域中的cart对象值的改动问题

xiaoxiao2021-02-28  121

问题: Cart cart=(Cart)request.getSession.getAttribute(“cart”);不是获取了Session对象,然后转变了Cart对象吗,调用完add方法,改变了Cart里面的值。但最后为什么没有再使用request.getSession.setAttribute(“cart”,cart)方法

解答: 重点在下面这行代码: Cart cart = (Cart) request.getSession().getAttribute(“cart”); 这里只是得到了session域中的cart对象,而没有重新生成一个cart对象(重新生成会写:Cart cart = new Cart();),所以在改动cart对象的内容是(cart.add(cartItem);),实际上就是在改动session域中cart对象的值,所以无需再使用request.getSession.setAttribute(“cart”,cart)方法。

public String add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Cart cart = (Cart)request.getSession().getAttribute("cart");//这里只是得到了session域中的cart对象,而没有重新生成一个cart对象 String bid = request.getParameter("bid"); Book book = new BookService().findByBid(bid); int count = Integer.parseInt(request.getParameter("count")); CartItem cartItem = new CartItem(); cartItem.setBook(book); cartItem.setCount(count); cart.add(cartItem);//cartItem是在别处定义的商品条目 System.out.println(cart); return "f:/jsps/cart/list.jsp"; }
转载请注明原文地址: https://www.6miu.com/read-63494.html

最新回复(0)