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 |