리다이렉트(redirect) 란?
리다이렉트(redirect)는 웹 브라우저(사용자)가 어떤 URL로 웹 서버를 요청했을때 다른 URL로 넘겨주는 것을 말합니다.
예를 들면, Gmail로 접속했을 때 로그인이 되어 있지 않다면, 로그인이 선행되어야 하기 때문에 로그인 페이지로 이동시키는 것을 리다이렉트라고 합니다.
구현
@Controller
public class RegisterController {
@RequestMapping("/register/step1")
public String handleStep1() {
return "register/step1";
}
@PostMapping("/register/step2")
public String handleStep2(
@RequestParam(value = "agree", defaultValue = "false") Boolean agree,
Model model) {
if (!agree) {
return "register/step1";
}
model.addAttribute("registerRequest", new RegisterRequest());
return "register/step2";
}
}
/register/step1은 회원가입을 위한 약관 동의 페이지, /regesiter/step2는 실제 회원가입을 위한 페이지라고 가정하겠습니다. 사용자가 주소창에 "http://주소/register/step2"를 입력 하면
이런 에러가 발생합니다. 왜냐하면 /register/step2에 대한 GET 방식을 처리하지 않았기 때문입니다. 이렇게 잘못된 전송 방식으로 요청이 왔을때 적절한 경로로 리다이렉트(redirect)해야 합니다.
@GetMapping("/register/step2")
public String handleStep2Get() {
return "redirect:/register/step1";
}
/register/step2에 대한 GET 요청이 들어오면 다시 약관 동의 페이지로 리다이렉트 시켜준 예제입니다. redirect:다음 문자열이 "/"로 시작하면 웹 애플리케이션을 기준으로 이동 경로를 생성하고, 그렇지 않으면 현재 경로를 기준으로 상대 경로를 사용합니다.
참고도서
![]() |
|
'Server > Spring' 카테고리의 다른 글
Spring - 쿠키(Cookie)를 활용한 ID 저장하기 ../ 아이디 기억하기 (0) | 2021.01.21 |
---|---|
Spring - 컨트롤러(Controller) 구현 (0) | 2021.01.01 |
Spring - 스프링 MVC 프레임워크 동작 방식 (0) | 2020.10.06 |
Spring - 트랜잭션 처리 (0) | 2020.09.29 |
Spring - 로그백(Logback) (0) | 2020.09.29 |