WebServer/Spring
[Spring] 스프링의 포워드(forward)와 리다이렉트(redirect) + RedirectAttributes
gangintheremark
2023. 9. 17. 19:36
728x90
[Servlet] 요청 위임
클라이언트의 요청을 받은 서블릿에서 다른 컴포넌트(서블릿, JSP, html)로 요청을 위임할 수 있다. 직접 요청 받은 서블릿에서 모든 작업을 처리하지 않고 위임한 컴포넌트에서 특정 작업을 처리
gangintheremark.tistory.com
리턴 타입이 String 일 때, 다음과 같은 특별한 키워드를 붙여서 사용할 수 있다.
- forward : 포워드 방식으로 처리
forward:target
- redirect : 리다이렉트 방식으로 처리
redirect:target
포워드(forward) 처리
- 화면 URL 변경 X
request scope
에 저장된 데이터 target에서 사용 가능
@RequestMapping("/aaa")
public String aaa(Model m) {
m.addAttribute("userid","옥지얌");
return "forward:xxx";
}
리다이렉트(redirect) 요청
- 화면 URL 변경
request scope
에 저장된 데이터 target에서 사용 불가
@RequestMapping("/bbb")
public String bbb(Model m) {
m.addAttribute("userid","옥지얌");
return "redirect:xxx";
}
flash scope
RedirectAttributes
는 redirect 처리를 한 경우 일회성으로 데이터를 전달할 수 있다.
@RequestMapping("/bbb")
public String bbb(RedirectAttributes m) {
m.addFlashAttribute("userid", "옥지얌");
return "redirect:xxx";
}
RedirectAttributes
는 파라미터로 선언해서 사용하고, addFlashAttribute(이름, 값)
메서드를 이용해 화면에 한 번만 사용하고 다음에는 사용되지 않는 데이터를 전달하기 위해 사용한다.
728x90