春季休会时段

时间:2020-02-05 19:28:44

标签: spring-boot servlets spring-rest

你好,我在春季休假时遇到问题,我的会话每次都为空,这是我的课程

        @GetMapping("/shoppingCart/addProduct/{productId}")
    public ResponseEntity<Cart> addProductToCart(@PathVariable("productId") Long productId,HttpServletRequest  request) throws AppException {
        Product product = productService.getProduct(productId);

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

        // If null, create it.
        if (cart == null) {
            cart = new Cart();
            request.getSession().setAttribute("myCart", cart);
        }

        cart.addProduct(product, 1);
        return new ResponseEntity<>(cart,HttpStatus.CREATED);
    }

    @GetMapping("/shoppingCart")
    public ResponseEntity<Cart> shoppingCart(HttpServletRequest  request) {
     cart = (Cart) request.getSession().getAttribute("myCart");
     return new ResponseEntity<>(cart,HttpStatus.CREATED);
    }

此行request.getSession().getAttribute("myCart")返回null,并且当我在购物车中添加产品时,它第一次保存在会话中,此后,当我尝试添加其他产品时,我的会话为空

谢谢

1 个答案:

答案 0 :(得分:0)

RestFul服务在本质上被设计为无状态的,因此,您首先不应该在Rest API中使用会话。但是,如果按照某种业务逻辑需要使用会话,则应该使用Spring MVC而不是REST,即应该在类中使用@Controller批注,而不是@RestController。 / p>