본문 바로가기
Spring/Spring MVC 5

Redirect와 Forward

코동이 2020. 5. 26.

1. Redirect

 

-클라이언트는 응답결과로 받은 요청주소를 직접 요청하게 된다.

-브라우저가 요청하는 것이므로 주소창의 주소가 변경된다.

-Redirect는 새로운 요청이 발생하는 것이므로 HttpServletRequest 객체는 소멸하고 새롭게 생성되며,

HttpSession 객체는 그대로 유지된다.

 

<TestController.java>

@GetMapping("/test1")
public String test1(){
	return "redirect:/sub1";
}

@GetMapping("/sub1")
public String sub1(){
	return "sub1";
}

주소창에 마지막 경로는 새롭게 요청됬으므로 sub1이다.

 

2. Forward

-코드의 흐름을 서버상에서만 이동한다.

-브라우저는 서버에서의 흐름을 알 수 없기 때문에 주소창의 주소가 변경되지 않는다.

-따라서 HttpServletRequest와 HttpSession 또한 그대로 유지된다.

 

<TestController.java>

@GetMapping("/test2")
public String test2(){
	return "forward:/sub2";
}

@GetMapping("/sub2")
public String sub2(){
	return "sub2";
}

주소창의 마지막 경로는 여전히 test2이다.

 

forward는 어느 경우에 사용할까?

반응형

'Spring > Spring MVC 5' 카테고리의 다른 글

RequestScope 빈 주입  (0) 2020.05.26
RequestScope  (0) 2020.05.26
Form 커스텀 태그  (0) 2020.05.25
커맨드 객체  (0) 2020.05.25
ViewResolver  (0) 2020.05.25