๋ฐ์ํ
[๐คModel] RedirectController.java
package xyz.itwill10.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
@Controller
public class RedirectController {
๐งกํฌ์๋ ์ด๋ : [/forward_move] ์์ฒญ
//ํฌ์๋ ์ด๋
@RequestMapping("/forward_move")
public String forward(Model model) {
//Model ๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ ๋ทฐ์๊ฒ ์ ๊ณตํ ๊ฐ์ฒด๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ ์ฅ - Request Scope
model.addAttribute("name", "ํ๊ธธ๋");
//๋ทฐ๋ฅผ ์์ฑํญ๊ธฐ ์ํ ๋ทฐ์ด๋ฆ(ViewName) ๋ฐํ
// => Front Controller๋ ์ ๊ณต๋ฐ์ ๋ทฐ์ด๋ฆ์ InternalResourceViewResolver ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ JSP ๋ฌธ์๋ก ๋ณํํ๊ณ JSP ๋ฌธ์๋ก ํฌ์๋ ์ด๋ํ์ฌ ์๋ต ์ฒ๋ฆฌ
// ๐งกํฌ์๋ ์ด๋ : ์๋ฒ ๋ด๋ถ์์ ํ์ฌ ์นํ๋ก๊ทธ๋จ์ ์ค๋ ๋๋ฅผ ๋ค๋ฅธ ์นํ๋ก๊ทธ๋จ์ผ๋ก ์ด๋ํ์ฌ ์๋ต ์ฒ๋ฆฌ
// => ํด๋ผ์ด์ธํธ์ ์์ฒญ URL ์ฃผ์๋ ๋ณ๊ฒฝ๋์ง ์์ผ๋ฉฐ Request Scope ์์ฑ๊ฐ์ ๊ฐ์ฒด๋ก ์ ๊ณต๋ฐ์ ์ฌ์ฉ ๊ฐ๋ฅ
// => ํฌ์๋์ด๋(์ค๋ ๋ ์ด๋)์ **request, reponse ๊ฐ์ฒด ๋ค ์ฌ์ฉ ๊ฐ๋ฅ**
return "display_forward";
}
๐๋ฆฌ๋ค์ด๋ ํธ ์ด๋ : [/redirect]์์ฒญ -> [/redirect_move]์ฌ์์ฒญ
//[๐๋ฐฉ๋ฒ1] : ์ฌ์์ฒญํ ์ฃผ์(/redirect_move)์ ๊ฐ์ด ์๊ธฐ ๋๋ฌธ์ ์ถ๋ ฅ๋จ
//Front Controller์๊ฒ ๋ฐ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์์ฒญํ ์ฃผ์์
//ํฌ์๋ ์ด๋
@RequestMapping("/redirect_move")
public String redirect(Model model) {
model.addAttribute("name", "์๊บฝ์ ");
return "display_redirect";
}
//๋ฆฌ๋ค์ด๋ ํธ์ด๋
@RequestMapping("/redirect")
public String redirect() {
//๋ฐํ๋๋ ๋ทฐ์ด๋ฆ์ redirect ์ ๋์ฌ๋ฅผ ์ฌ์ฉํ์ฌ URL ์ฃผ์๋ฅผ ๋ฐํํ๋ฉด Front Controller๋ ๋ฐํ๋ฐ์ ๋ทฐ์ด๋ฆ์ URL ์ฃผ์๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌ - ๋ฆฌ๋ค์ด๋ ํธ ์ด๋
// => ์ฆ, Front Controller๋ ํฌ์๋ ์ด๋ํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ JSP๋ก ์๋ตํ๋ ๊ฒ์ด ์๋๋ผ, ์ฌ์์ฒญํ URL ์ฃผ์๋ก ์๋ตํ๋ ๊ฒ์
// => ํด๋ผ์ด์ธํธ์๊ฒ URL ์ฃผ์๋ฅผ ์ ๋ฌํ์ฌ ์๋ต ์ฒ๋ฆฌํ๋ฉด ํด๋ผ์ด์ธํธ๋ ํด๋น URL ์ฃผ์๋ก ๋ธ๋ผ์ฐ์ ์ ์ฃผ์๋ฅผ ๋ณ๊ฒฝํ๊ณ ์๋ฒ์ URL ์ฃผ์์ ํ์ด์ง ์์ฒญ ์ฒ๋ฆฌ
// ๐๋ฆฌ๋ค์ด๋ ํธ ์ด๋ : ํด๋ผ์ด์ธํธ์๊ฒ URL ์ฃผ์๋ฅผ ์ ๋ฌํ์ฌ ํ์ด์ง๋ฅผ ์ฌ์์ฒญํ์ฌ ์นํ๋ก๊ทธ๋จ์ ์คํ๊ฒฐ๊ณผ๋ก ์๋ต ์ฒ๋ฆฌ
// => ํด๋ผ์ด์ธํธ์ ์์ฒญ URL ์ฃผ์๋ ๋ณ๊ฒฝ๋์ง๋ง **Request Scope ์์ฑ๊ฐ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ**
return "redirect:/redirect_move"; ///ํด๋ผ์ผ redirect_move๋ก ๋ค์ ์์ฒญํด!
}
//[๐๋ฐฉ๋ฒ2] : ์ฌ์์ฒญํ ์ฃผ์(/redirect_move)์ ๊ฐ์ด ์๊ธฐ ๋๋ฌธ์ ์ถ๋ ฅ์๋จ
//Front Controller์๊ฒ ๋ฐ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์์ฒญํ ์ฃผ์์
//ํฌ์๋ ์ด๋
@RequestMapping("/redirect_move")
public String redirect() {
return "display_redirect";
}
//๋ฆฌ๋ค์ด๋ ํธ์ด๋
@RequestMapping("/redirect")
public String redirect(Model model) {
//Model ๊ฐ์ฒด์ ์ ์ฅ๋ ์์ฑ๊ฐ์ ๋ฆฌ๋ค์ด๋ ํธ ์ด๋๋ ํ์ด์ง์ ์์ฒญ์ฒ๋ฆฌ ๋ฉ์๋์ ๋ทฐ์์ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ
model.addAttribute("name", "์๊บฝ์ "); //Request Scope - ์ค๋ ๋๊ฐ ์ด๋๋์ง ์์ ์ด์ ์ ๋ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ
return "redirect:/redirect_move";
}
//[๐๋ฐฉ๋ฒ3] : ์ฌ์์ฒญํ ์ฃผ์(/redirect_move)์ ๊ฐ์ด ์์ด๋ RedirectAttributes๊ฐ์ฒด ์ด์ฉํ๋ฉด ์ฌ์ฉ ๊ฐ๋ฅ
//Front Controller์๊ฒ ๋ฐ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์์ฒญํ ์ฃผ์์
//ํฌ์๋ ์ด๋
@RequestMapping("/redirect_move")
public String redirect() {
return "display_redirect";
}
//๋ฆฌ๋ค์ด๋ ํธ์ด๋
// => RedirectAttributes ๊ฐ์ฒด : ๋ฆฌ๋ค์ด๋ ํธ ์ด๋๋๋ ํ์ด์ง์ ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋์ ๋ทฐ์์ ์ฌ์ฉ ๊ฐ๋ฅํ Request Scope ์์ฑ๊ฐ์ ์ ์ฅํ์ฌ ์ฌ์ฉํ๊ธฐ ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๊ฐ์ฒด
@RequestMapping("/redirect")
public String redirect(RedirectAttributes attributes) {
//RedirectAttributes.addFlashAttribute(String attributeName, Object attributeValue) : ์์ฑ๋ช
๊ณผ ์์ฑ๊ฐ์ ์ ์ฅํ์ฌ ๋ฆฌ๋ค์ด๋ ํธ ์ด๋๋๋ ํ์ด์ง์ ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋์ ๋ทฐ์๊ฒ ์์ฑ๊ฐ์ ์ ๊ณตํ๊ธฐ ์ํ ๋ฉ์๋ - Request Scope
// => ์ฃผ์) addAttribute ์๋๊ณ , addFlashAttribute์
attributes.addFlashAttribute("name", "์๊บฝ์ ");
return "redirect:/redirect_move";
}
//Request Scope๋
//@ModelAttribute ์ด๋
ธํ
์ด์
์ ๋ฉ์๋์ ์์ฑํ๋ฉด "๋ชจ๋ ์์ฒญ์ฒ๋ฆฌ๋ฉ์๋์ ๋ทฐ"์๊ฒ ์ ๊ณต ๊ฐ๋ฅ
//@ModelAttribute ์ด๋
ธํ
์ด์
์ ๋งค๊ฐ๋ณ์์ ์์ฑํ๋ฉด "ํด๋น ์์ฒญ์ฒ๋ฆฌ๋ฉ์๋์ ๋ทฐ"์๊ฒ๋ง ์ ๊ณต ๊ฐ๋ฅ
//Seesion Scope๋
//๊ฐ์ Session์ ์ด์ฉํ๋ ๋ชจ๋ ๋ทฐ์์ ์ฌ์ฉ ๊ฐ๋ฅ
//ํด๋์ค ๋ด์์๋ง ์์ฉํ๋ ๋ทฐ์์ ์ฌ์ฉ ๊ฐ๋ฅ
//HttpSession ๊ฐ์ฒด์ ์ ์ฅํ๋ฉด ๋ชจ๋ ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋์ ๋ทฐ์์ ์ฌ์ฉ ๊ฐ๋ฅ
}
[๐งกView] display_forward.jsp - ์ถ๋ ฅํ์ด์ง
- ํฌ์๋ ์ด๋ํด ์์ฑ๊ฐ ์ฌ์ฉํ ๋ชจ์ต
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SPRING</title>
</head>
<body>
<h1>ํฌ์๋ ์ด๋</h1>
<hr>
<h2>${name }๋, ํ์ํฉ๋๋ค.</h2>
</body>
</html>
[๐View] display_redirect.jsp - ์ถ๋ ฅํ์ด์ง
- ๋ฆฌ๋ค์ด๋ ํธ ์ด๋ํด ์์ฑ๊ฐ ์ฌ์ฉํ ๋ชจ์ต
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SPRING</title>
</head>
<body>
<h1>๋ฆฌ๋ค์ด๋ ํธ ์ด๋</h1>
<hr>
<h2>${name }๋, ํ์ํฉ๋๋ค.</h2>
</body>
</html>
๋ฐ์ํ