Spring

[Spring] PRG (POST, Redirct, GET)

동그리담 2024. 5. 8. 16:50

웹 브라우저에서 새로 고침을 하게되면 마지막에 서버에 전송한 데이터를 다시 전송한다.

새로 고침 문제를 해결하려면 상품 저장 후에 뷰 템플릿으로 이동하는 것이 아니라, 상품 상세 화면으로 리다이렉트를 호출해주면 된다.

웹 브라우저는 리다이렉트의 영향으로 상품 저장 후에 실제 상품 상세 화면으로 다시 이동한다. 따라서 마지막에 호출한 내용이 상품 상세 화면인 GET /items/{id} 가 되는 것이다.

이후 새로고침을 해도 상품 상세 화면으로 이동하게 되므로 새로 고침 문제를 해결할 수 있다.

 

POST가 들어올때 Redirect를 통해서 GET을 실행하도록 해서 문제해결하는 방식을
PRG 라고 한다.

@PostMapping("/add")
public String addItemV3(@ModelAttribute("item") Item item) {
    itemRepository.save(item);

    return "redirect:/basic/items/" + item.getId();
}

 

 

 

출처: https://tan-sog.tistory.com/90