해당 게시글의 전체 소스코드는 이곳 Github를 참고해 주세요


목차

  1. Forward와 Redirect 동작 방식 이해




Forward와 Redirect

  • src/test/java/urlController.java 내용

Forward

  • Forward는 서버 내 페이지 전환 실생활 예시로 들면,
    1. 철수는 과자를 사러 집앞 A 편의점을 방문했다
    2. 편의점을 갔는데 내가 원하는 과자를 찾지 못해서 편의점 직원에게 도움을 요청
    3. 직원은 내가 원하는 과자를 창고에서 찾아서 줬다

// Forward TEST
@RequestMapping(value="/tryFwd", method = RequestMethod.GET)
public String getUserTest4( @ModelAttribute("msg") String msg ) {
	logger.info(msg);
	logger.info(" /tryFwd URL called. then getUserTest4 method executed.");
	return "forward:/tryB";
}


Redirect

  • Redirect는 브라우저를 경유한다 실생활 예시로 들면,
    1. 철수는 과자를 사러 집앞 A 편의점을 방문했다
    2. 편의점에 들어가니 직원이 다음과 같이 말했다. “현재 편의점이 리모델링 중이니 B 편의점으로 가주세요”
    3. 철수는 B 편의점으로 가서 과자를 산다

// Redirect TEST
@RequestMapping(value="/tryRdt", method = RequestMethod.GET)
public String getUserTest5( @ModelAttribute("msg") String msg ) {
	logger.info(msg);
	logger.info(" /tryRdt URL called. then getUserTest5 method executed.");
	return "redirect:/tryB";
}

결론

  • URL의 변화여부가 필요하다면 Redirect 를 사용하는 것이 좋다
  • 객체를 재사용하거나 공유해야한다면 Forward 를 사용하는 것이 좋다

References

  • 대학교 웹 프레임워크 수업 정리한 내용 입니다.