Redirect란?
쉽게 예시를들자면, 3년전에 가게 A를 운영하다가 가게 점주 김씨가 A를 허물고 가게 B로 이사를한것이다.
그렇다면 손님들은 점주 김씨가 운영하던 가게 A를 이용하려고 했지만, 가게 A는 이미 허물고 없어졋다.
그러더니 안내인 박씨가 나타나 손님들을 이끌고 "가게 A는 허물었으니 새로지은 가게 B로 오세요" 라고 손님들을
인솔하는것이다.
Redirect는 딱 안내인 박씨가 하는 역활과 동일하다.
Redirect를 활용한 사이트를 예시를 들자면 나무위키를 들어보자.
검색창에 ㄴㅇㅅ를 치면 자동으로 알아서 '나이스' 검색결과로 Redirect를 해준다.
ㄴㅇㅅ이라는 검색결과는 적절치못하니 서버가 Redirect를 해준것이다.
Redirect는 잘 활용하면, Post의 중복을 막아준다
해당페이지를 새로고침하면 무슨일이 일어날까?
한번 새로고침 5번 해봣다.
그렇다 같은 PostMapping요청이 5번들어간다.
이게 큰 문제로 번질수있다.
예를들어, 10만원 결제 요청을 한뒤, 새로고침을 5번 진행을하면 50만원 결제가 추가로 되어버린다.
이 사태를 막기위해 redirect를 활용할수가있다.
redirect를 통해서, GetMapping인 /basic/items 로 이동시킨다.
해당코드를 실행한뒤 새로고침을 눌러도 @PostMapping 중복처리가 되지않는다.
RedirectAttribute
리다이렉트를 할때 추가 속성을 담아서 보낼수가 있다.
redirectAttributes.addAttribute로 URI주소에 속성을 담을수있다.
이 코드는 모델인 Item에서 itemId를뽑고 status란 이름의 true값을 주소에 넣는다.
이 코드를 실행하고 확인해보면..
이렇게나온다.
'자바 > 스프링(Spring)' 카테고리의 다른 글
스프링(Spring) JSon 역직렬화 문제 (중복배열) (0) | 2022.07.08 |
---|---|
스프링 타임리프(Thymleaf) 한눈에 정리하기 (0) | 2022.05.18 |
스프링 @ModelAttribute 에 관하여 (0) | 2022.04.19 |
스프링에서 로그(log) 찍기 (0) | 2022.04.19 |
스프링: 영속 컨텍스트 (Persistence Context) (0) | 2022.01.08 |