为什么HttpSession总是新的

时间:2017-09-20 15:38:25

标签: java spring http spring-mvc web

我的项目很简单,我正在为商店添加购物车服务。算法看起来像这样: 1)创建产品的ArrayList 2)将该列表添加到HttpSession作为属性 3)下一次算法询问是httpSession artributes中的购物车。

用SpringMVC

@Controller
public class CartController {

    @Autowired
    ShopServiceInterface shopServiceInterface;

    @RequestMapping(value = "/cart/add/{id}", method = RequestMethod.GET)
    public String addToCart(@PathVariable("id") Long id , ModelMap modelMap, HttpSession httpSession){
        if(httpSession.getAttribute("cart") == null) {
            List<CartItem> cart = new ArrayList<CartItem>();
            cart.add(new CartItem(shopServiceInterface.getProductById(id), 1));
            httpSession.setAttribute("cart", cart);
        } else {
            List<CartItem> cart = (List<CartItem>)httpSession.getAttribute("cart");
            cart.add(new CartItem(shopServiceInterface.getProductById(id),1));
            httpSession.setAttribute("cart", cart);
        }
        return "cart";
    }

}

问题是,当我尝试将新产品添加到购物车时,它始终会生成新的HttpSession,并且始终会创建新的ArrayList购物车。我在调试时看到springMVC每次都给我一个httpSession个对象。

0 个答案:

没有答案