Free Lines Arrow
본문 바로가기
Spring/spring mvc 1 스터디

[Spring] PRG(Post Redirect Get)

by skahn1215 2021. 12. 3.
728x90
반응형

PRG

Post Redirect Get 이라고 하는데 실무에서 많이 쓰인다.

왜 써야 되는지 먼저 알아보자.

 

 

상품등록의 심각한 문제점

  • 다음과 같이 Controller를 구현할 경우 문제가 있다.
  • 기능은 다음과 같다.
  • post 방식으로 요청이 왔을때
     - ModelAttribute 를 이용하여 item 을 저장한다.
  • retun 값은 string 인데 해당 뷰를 호출한다.
  • 심각한 문제가있다.
@PostMapping("/add")
public String addItemV3(@ModelAttribute Item item) {
    itemRepository.save(item);
    return "basic/item";
}

 

어떤 문제점이 발생하는가?

  • 상품Controller 에서 저장후 
  • View 를 넘겨준다.
  • 하지만 URL 은 상품저장 URL로 되어있을 것이다.
  • 여기서 문제점이 발생한다.
    - 새로고침을 하게 되면 이전걸 그대로 수행한다.
    - 즉 Post /add 요청을 계속 하게 된다.
     - 아이템이 계속 누적되어서 저장된다.

 

 

해결법

redirect 를 사용한다.

  • 1. 아이템을 저장한다. 
  • 2. 뷰를 호출하는게 아니라 redirect 로 상품상세 컨트롤을 호출한다.
  • 3. 상품상세로 URL 이 넘어간다.
  • 4. 아무리 새로고침을 해도 상품상세만 보이게 된다.

 

 

결론

  • 그렇기 때문에 PRG(Post Redirect Get) 이라고 불린다.
  • Redirect 를 잘 이용해주자.

 

 

 

참고

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/lecture/71238?tab=note 

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

728x90
반응형

'Spring > spring mvc 1 스터디' 카테고리의 다른 글

[Spring] 웹페이지 만들어 보기  (0) 2021.12.02
[Spring] @ModelAttribute 사용하기  (0) 2021.11.27
[Spring] Message Converter  (0) 2021.11.25
[Spring] HTTP 응답  (0) 2021.11.21
[Spring] HTTP 요청메세지 TEXT, JSON  (0) 2021.11.16

댓글