๋ฐ์ํ
[๐คModel] ResultController.java
package xyz.itwill10.controller;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
//๐ค์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋์ ์ํด ์ฒ๋ฆฌ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ทฐ(JSP ๋ฌธ์)์ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ
//๋ฐฉ๋ฒ1. ModelAndView ๊ฐ์ฒด์ ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ ์ฅํ์ฌ ์ ๊ณต - Request Scope
//๋ฐฉ๋ฒ2. HttpServletRequest ๊ฐ์ฒด์ ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ ์ฅํ์ฌ ์ ๊ณต - Request Scope
//๋ฐฉ๋ฒ3. Model ๊ฐ์ฒด์ ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ ์ฅํ์ฌ ์ ๊ณต - ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ - Request Scope
@Controller
public class ResultController {
- [๋ฐฉ๋ฒ1] ModelAndView ๊ฐ์ฒด์ ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ ์ฅํ์ฌ ์ ๊ณต
/*
@RequestMapping("/resultMAV")
public ModelAndView ModelAndViewResult() {
ModelAndView modelAndView = new ModelAndView("result_display");
//ModelAndView.addObject(String attributeName, Object attributeValue)
// => ModelAndView ๊ฐ์ฒด์ ์์ฑ๋ช
๊ณผ ์์ฑ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๋ฉ์๋ - [Request Scope]
// => request.setAttribute()์ ๋ฉ์๋์ ์ ์ฌํ ๊ธฐ๋ฅ ์ ๊ณต
// => ๋ทฐ(JSP ๋ฌธ์)์์๋ EL ํํ์์ผ๋ก ์์ฑ๋ช
์ ์ฌ์ฉํ์ฌ ์์ฑ๊ฐ์ ์ ๊ณต๋ฐ์ ์ถ๋ ฅ ๊ฐ๋ฅ
modelAndView.addObject("mavName","ํ๊ธธ๋");
return modelAndView;
}
*/
//์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋๋ Front Controller์ ์ํด ์๋ ํธ์ถ๋๋ ๋ฉ์๋ - ์ฐ๋ฆฌ๊ฐ ์ง์ ํธ์ถํ๋ ๊ฒ ์๋
// => ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋์ ๋งค๊ฐ๋ณ์๋ฅผ ์์ฑํ๋ฉด Front Controller๋ ์คํ๋ง ์ปจํ
์ด๋๋ก๋ถํฐ
//๋งค๊ฐ๋ณ์์ ์ ์ฅ ๊ฐ๋ฅํ "์น ๊ด๋ จ ๊ฐ์ฒด"๋ฅผ ์ ๊ณต๋ฐ์ ์ ๋ฌํ์ฌ ์ ์ฅ
//=> ํ์ํ๋ฉด ์คํ๋ง ์ปจํ
์ด๋์๊ฒ ๋ฌ๋ผ๊ณ ํ๊ธฐ ex) request์ฃผ์ธ์~ response์ฃผ์ธ์~
//=> ๋ง์ฝ ์คํ๋ง ์ปจํ
์ด๋๊ฐ ๋ง๋ค์ง ๋ชปํ๋ ๊ฐ์ฒด๊ฐ ํ์ํ๋ค๋ฉด Injection ์ฒ๋ฆฌํด์ ์ฌ์ฉํ๊ธฐ
//ํด๋ผ์ด์ธํธ๊ฐ ์ต์์ ํด๋์ ์๋ resultMAV๋ผ๋ ์นํ๋ก๊ทธ๋จ์ ์์ฒญ!
@RequestMapping("/resultMAV")
public ModelAndView modelAndViewResult(ModelAndView modelAndView) {
modelAndView.setViewName("result_display");
modelAndView.addObject("mavName","ํ๊ธธ๋");
return modelAndView;
}
- [๋ฐฉ๋ฒ2] HttpServletRequest ๊ฐ์ฒด์ ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ ์ฅํ์ฌ ์ ๊ณต
//ํด๋ผ์ด์ธํธ๊ฐ ์ต์์ ํด๋์ ์๋ resultRequest๋ผ๋ ์นํ๋ก๊ทธ๋จ์ ์์ฒญ!
@RequestMapping("/resultRequest")
public String requestResult(HttpServletRequest request) {
//HttpServletRequest.setAttribute(String attributeName, Object attributeValue)
// => HttpServletRequest ๊ฐ์ฒด์ ์์ฑ๋ช
๊ณผ ์์ฑ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๋ฉ์๋ - [Request Scope]
// => HttpServletRequest๋ ํด๋ผ์ด์ธํธ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉํ๋ ๊ฒ์ด์ง, ์์ฑ๊ฐ์ ์ ์ฅํ ์ฉ๋๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๋น์ถ
request.setAttribute("requestName", "์๊บฝ์ ");
return "result_display";
}
- [๋ฐฉ๋ฒ3] Model ๊ฐ์ฒด์ ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ ์ฅํ์ฌ ์ ๊ณต - ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ
//ํด๋ผ์ด์ธํธ๊ฐ ์ต์์ ํด๋์ ์๋ resultModel๋ผ๋ ์นํ๋ก๊ทธ๋จ์ ์์ฒญ!
@RequestMapping("/resultModel")
public String modelResult(Model model) {
//Model ๊ฐ์ฒด : ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ ์ฅํ์ฌ ๋ทฐ(View)์๊ฒ ์ ๊ณตํ๊ธฐ ์ํ ๊ฐ์ฒด
// => Model.addAttribute(String attributeName, Object attributeValue): Model ๊ฐ์ฒด์ ์์ฑ๋ช
๊ณผ ์์ฑ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๋ฉ์๋ - [Request Scope]
model.addAttribute("modelName", "์ ์ฐ์น");
return "result_display";
}
}
[๐คView] result_display.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>ModelAndView = ${mavName }</h2>
<h2>HttpServletRequest = ${requestName }</h2>
<h2>Model = ${modelName }</h2>
</body>
</html>
๋ฐ์ํ