[Spring] Session을 활용한 상품 주문 기능 개선

김상현·2022년 12월 1일
0

Spring

목록 보기
11/13
post-thumbnail

📒 [실전! 스프링 부트와 JPA 활용 - 김영한] 프로젝트를 완성한 후 부족한 기능을 개선한 후 정리하는 글입니다.


📍 개선한 기능

  • 기존의 상품 주문 페이지는 사용자가 주문 회원, 상품명, 주문 수량 총 3개의 정보를 서버에 제공했다.
  • 이전에는 로그인 기능이 없어서 현재 페이지를 사용하고 있는 회원의 정보를 알 수 없었다.
  • 현재는 로그인 기능의 세션을 통해 현재 페이지를 사용하고 있는 회원의 정보를 알 수 있다.
  • 기존의 주문 회원의 정보를 전달하는 <input>을 삭제하고 세션을 통해 상품 주문을 진행할 수 있도록 기능을 개선하였다.

📌 수정 전 상품 주문 페이지

📌 수정 후 상품 주문 페이지


📍 기능 개선 과정

📌 Controller 변경

🧷 수정 전 코드

@PostMapping("/order")
public String order(@RequestParam("memberId") Long memberId,
                    @RequestParam("itemId") Long itemId,
                    @RequestParam("count") int count){

    orderService.order(member.getId(), itemId, count);
    return "redirect:/orders";
}
  • 수정 전의 코드에서 Controller는 사용자로부터 memberId 에 해당하는 값을 직접 전달 받았다.

🧷 수정 후 코드

@PostMapping("/order")
public String order(@SessionAttribute(name = SessionConst.LOGIN_MEMBER, required = false)Member member,
                    @RequestParam("itemId") Long itemId,
                    @RequestParam("count") int count){

    orderService.order(member.getId(), itemId, count);
    return "redirect:/orders";
}
  • 수정 후의 코드는 Controller가 사용자로부터 전달 받는 값은 주문하고자 하는 상품의 고유 번호(itemId)와 주문 개수(count) 2개 뿐이다.
  • 주문하는 회원에 대한 정보는 현재 페이지의 Session을 통해서 값을 획득한다.
profile
목적 있는 글쓰기

0개의 댓글