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 |
댓글