2022 01 24 - oneso123456789/2022 GitHub Wiki
์ด์ ๋ถํฐ http://localhost:8090/or8080ํฌํธ๋ฅผ ์ฌ์ฉ์ ์ด๊ฑธ ํ๋ก์ ํธ ๊ฒฝ๋ก๋ผ๊ณ ํ๊ฒ ์ ๋๋ฌด ๊ธธ์ด ใ
์คใ
๋
ธํธ๋ถ์ ํฐ์บฃ 9.0๋ฒ์ ์ด 80ํฌํธ๋ฅผ ์ฌ์ฉํ์ง๋ง ๋ฐํฑ์ 90ํฌํธ๋ฅผ ์ฌ์ฉํจ ์ด๊ฑธ ๋ง์ถฐ์ผ ํ๋๋ ๋ณ์๋ฅผ ์ข ๊ณ ๋ คํด๋ด์ผํ ๊บผ ๊ฐ์
###JSP ํ๊ทธ ๋ฉํ ํ๊ทธ์ ์์ฑ์ http-equiv, name, content 3๊ฐ์ง์ ์์ฑ์ด ์์
http-equiv="ํญ๋ชฉ๋ช "
์น ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ ๋ช ๋ น์ ๋ด๋ฆฌ๋ ์์ฑ์ผ๋ก name ์์ฑ์ ๋์ ํ์ฌ ์ฌ์ฉ๋ ์ ์์,
HTML ๋ฌธ์๊ฐ ํค๋์ํจ๊ป ์น ์๋ฒ๋ก๋ถํฐ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์ก๋์์ ๋์๋ง ์๋ฏธ๋ฅผ ๊ฐ์
content="ํ ์คํธ"
name์์ฑ์ด๋ http-equiv์์ฑ๊ณผ ๊ด๋ จ๋ ๊ฐ(value)์ ๋ช ์ํจ
name="์ ๋ณด ์ด๋ฆ"
๋ช ๊ฐ์ meta ์ ๋ณด์ ์ด๋ฆ์ ์ ํ ์ ์์ผ๋ฉฐ ์ง์ ํ์ง ์์ผ๋ฉด http-equiv์ ๊ฐ์ ๊ธฐ๋ฅ์ ํจ
๊ฐ ์์ฑ์ ๋ํ ๋ ๋ง์ ์ ๋ณด๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ๋ฉด์ ์ฌ์ฉํ์
https://webclub.tistory.com/354
Controller์ ๋ฉ์๋๋ฅผ ์์ฑํ ๋๋ ํน๋ณํ๊ฒ Model์ด๋ผ๋ ํ์
์ ํ๋ผ๋ฏธํฐ๋ก ์ง์ ํ ์ ์์
Model ๊ฐ์ฒด๋ JSP์ ์ปจํธ๋กค๋ฌ์์ ์์ฑ๋ ๋ฐ์ดํฐ๋ฅผ ๋ด์์ ์ ๋ฌํ๋ ์ญํ์ ํ๋ ์กด์ฌ
์ด๋ฅผ ์ด์ฉํด์ JSP์ ๊ฐ์ ๋ทฐ(View)๋ก ์ ๋ฌํด์ผ ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ด์์ ๋ณด๋ผ ์ ์์
๋ฉ์๋์ ํ๋ผ๋ฏธํฐ์ Model ํ์
์ด ์ง์ ๋ ๊ฒฝ์ฐ์๋ ์คํ๋ง์ ํน๋ณํ๊ฒ Model ํ์
์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ ๋ฉ์๋์ ์ฃผ์
ํจ
Model์ ๋ชจ๋ธ 2 ๋ฐฉ์์์ ์ฌ์ฉํ๋ request.setAttribute()์ ์ ์ฌํ ์ญํ์ ํจ
Servlet์ ์ด์ฉํด ๋ณธ ์ ์ด ์๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฝ๋์ ์ต์ํ ๊ฒ์
request.setAttribute("serverTime", new java.util.Date());
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/home.jsp");
dispatcher.forward(request, response);
์์ ์ฝ๋๋ฅผ ์คํ๋ง์์๋ Model์ ์ด์ฉํด์ ๋ค์๊ณผ ๊ฐ์ด ์ฒ๋ฆฌํจ
public String home(Model model){
model.addAttribute("serverTime", new java.util.Date());
return "home";
}
๋ฉ์๋์ ํ๋ผ๋ฏธํฐ๋ฅผ Model ํ์
์ผ๋ก ์ ์ธํ๊ฒ ๋๋ฉด ์๋์ผ๋ก ์คํ๋ง MVC์์ Modelํ์
์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ์ฃผ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์์
์
์ฅ์์๋ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ด์์ฃผ๋ ์์
๋ง์ผ๋ก ๋ชจ๋ ์์
์ด ์๋ฃ๋จ
Model์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ์ฃผ๋ก Controller์ ์ ๋ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด์ ์ถ๊ฐ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ผ ์ํฉ์
์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ๋ค์ ์๊ฐํด ๋ณผ ์ ์์
- ๋ฆฌ์คํธ ํ์ด์ง ๋ฒํธ๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌ๋ฐ๊ณ , ์ค์ ๋ฐ์ดํฐ๋ฅผ View๋ก ์ ๋ฌํด์ผ ํ๋ ๊ฒฝ์ฐ
- ํ๋ผ๋ฏธํฐ๋ค์ ๋ํ ์ฒ๋ฆฌ ํ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฌํด์ผ ํ๋ ๊ฒฝ์ฐ
์นํ์ด์ง์ ๊ตฌ์กฐ๋ Request์ ์ ๋ฌ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ํ์ํ๋ค๋ฉด ์ถ๊ฐ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์์ฑํด์ ํ๋ฉด์ผ๋ก ์ ๋ฌํ๋ ๋ฐฉ์์ผ๋ก ๋์
Model์ ๊ฒฝ์ฐ๋ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌ๋ ๋ฐ์ดํฐ๋ ์กด์ฌํ์ง ์์ง๋ง ํ๋ฉด์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด์ ์ฌ์ฉํจ
EX:ํ์ด์ง ๋ฒํธ(ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌ๋์ง๋ง, ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ค๋ฉด Model์ ๋ด์์ ์ ๋ฌํจ)
์คํ๋ง MVC์ Controller๋ ๊ธฐ๋ณธ์ ์ผ๋ก Java Beans ๊ท์น์ ๋ง๋ ๊ฐ์ฒด๋ ๋ค์ ํ๋ฉด์ผ๋ก ๊ฐ์ฒด๋ฅผ ์ ๋ฌํจ
์ข์ ์๋ฏธ์์ Java Beans์ ๊ท์น์ ๋จ์ํ ์์ฑ์๊ฐ ์๊ฑฐ๋ ๋น ์์ฑ์๋ฅผ ๊ฐ์ ธ์ผ ํ๋ฉฐ,
getter/setter๋ฅผ ๊ฐ์ง ํด๋์ค์ ๊ฐ์ฒด๋ค์ ์๋ฏธํจ
**์์ ์์ ์์ ํ๋ผ๋ฏธํฐ๋ก ์ฌ์ฉ๋ SampleDTO์ ๊ฒฝ์ฐ๋ Java Bean์ ๊ท์น์ ๋ง๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ๋ค์ ํ๋ฉด๊น์ง ์ ๋ฌ๋จ **
์ ๋ฌ๋ ๋์๋ ํด๋์ค๋ช
์ ์๊ธ์๋ ์๋ฌธ์๋ก ์ฒ๋ฆฌ๋จ
๋ฐ๋ฉด์ ๊ธฐ๋ณธ ์๋ฃํ์ ๊ฒฝ์ฐ๋ ํ๋ผ๋ฏธํฐ๋ก ์ ์ธํ๋๋ผ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ฉด๊น์ง ์ ๋ฌ๋์ง ์์
์์์ ์ค๋ช
ํ SampleDTO์ ๊ธฐ๋ณธ ์๋ฃํ์ ์ ๋ฌ์ฐจ์ด๋ฅผ ํ์ธํ๋ ค๊ณ ์์ฑํ๋ ์์ ๊ฐ์
@GetMapping์ url์ "/ex04"์ log.info๋ก dto์ page๋ฅผ ๋ก๊ทธ์ ์ถ๋ ฅํด์ฃผ๊ณ
๋ค๋ฅธ ์์ ์ ๋ค๋ฅธ์ ์ ๋ฆฌํด ๋ฌธ์์ด์ด "/sample/ex04"์ธ๋ ๋ณ๋ก ์ค์ํ ๋ถ๋ถ์ ์๋๊ฑฐ ๊ฐ์
๊ฒฝ๋ก๋ src/main/webapp/WEB-INF/view/sample/ex04.jsp
html ์ ์ธ ๋ถ๋ถ์ 4.01๋ฒ์ ์ผ๋ก ๋ฐ๊ฟ์ค ๊ธฐ๋ณธ์ด html5์ง๋ง ์ผ๋จ ์์ ๊ฐ 4.01์ด๋ ๋ฐ๊ฟ์ฃผ๊ณ ๋ฌธ์ ์์์ ๋ค์ ๋ณ๊ฒฝํด๋ณด๊ฒ ์
๋ค์์ผ๋ก ๋ฅผ ์ฌ์ฉํด์ utf-8๋ก ๋ฌธ์ ์ธ์ฝ๋ฉ์ ํด์ค
http-equiv์์ฑ์ ์ฌ์ฉํ๊ณ ๊ฐ์ content-type๋ฅผ ์ฌ์ฉํด ๋ฌธ์์ ๋ฌธ์ ์ธ์ฝ๋ฉ ๋ฐฉ์์๋ช
์ํด์ค
๋ค์์ผ๋ก contentํ๊ทธ๋ก text/html๊ฐ์ ๋ช
์ํด์คํ charset์์ฑ์ผ๋ก ์ธ์ฝ๋ฉํ ๋ฌธ์์ด์ ๋ช
์ํด์ค ์ฌ๊ธฐ์ UTF-8
<body>
์ <h2>
ํ๊ทธ๋ก DTO์ PAGE ํ๊ทธ์ ๊ฐ์ ๋๊ฒจ๋ฐ๊ธฐ ์ํด ๊ฐ ํ๋ผ๋ฏธํฐ๋ก ๋ ๋ณ์๋ฅผ ์ฝ์
ํด์ค
ํฐ๊ฑด ์๋๊ณ ํ๋ก์ ํธ ๊ฒฝ๋ก/sample/ex04๋ง ํธ์ถํด์ ๊ฐ์ ๋๊ธฐ์ง ์์์ http state 500 ์ค๋ฅ๊ฐ ๋ธ
ํด๊ฒฐ๋ฒ์ ์๋ค์ถ์ด ๊ฐ์ ๊ฐ์ด ๋๊ฒจ์ฃผ๋๊ฒ์ ์ฌ์ค dto๋ ์๋๊ฒจ๋ ์๊ด์์ง๋ง
page๋ ๋ฉ์๋ ์์์ ๋ง๋ ๋งค๊ฐ๋ณ์(parameter)๋ผ์ ๊ฐ์ ๋ฃ์ด์ฃผ์ง ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋๊ฒ์
๊ฒฐ๊ณผ๋ intํ์ผ๋ก ์ ์ธํ page๋ ๊ฐ์ด ์ ๋ฌ๋์ง ์์
์๋ง ์ด๊ฑธ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋๊ฒ @ModelAttribute์ธ๊ฑฐ ๊ฐ์
@ModelAttribute๋ ๊ฐ์ ๋ก ์ ๋ฌ๋ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ Model์ ๋ด์์ ์ ๋ฌํ๋๋ก ํ ๋ ํ์ํ ์ด๋
ธํ
์ด์
์
@ModelAttribute๊ฐ ๊ฑธ๋ฆฐ ํ๋ผ๋ฏธํฐ๋ ํ์
์ ๊ด๊ณ์์ด ๋ฌด์กฐ๊ฑด Model์ ๋ด์์ ์ ๋ฌ๋จ
๋ฐ๋ผ์ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ํ๋ฉด์์ ์ฌ์ฉํ ๋ ์ ์ฉํจ
๊ธฐ์กด์ ์ฝ๋์์ int ํ์ ์ page๊ฐ ํ๋ฉด๊น์ง ์ ๋ฌ๋์ง ์์์ผ๋ฏ๋ก ์์ @ModelAttribute("page) ๋ฉ์๋๋ฅผ ๋ช ์ํด๋ณด๊ฒ ์
์ดํ ์๋ฒ๋ฅผ ๋ค์ ์ฌ์์ํ๊ณ ๊ฐ์ ๋๊ฒจ๋ณด๋ฉด ์๊น์๋ ๋ค๋ฅด๊ฒ page๊ฐ๋ ์ ๋์ด๊ฐ์ ex04.jsp์ ์ถ๋ ฅ๋๋๊ฑธ ๋ณผ์์์
๋ง์ง๋ง์ผ๋ก ๊ธฐ๋ณธ ์๋ฃํ์ @ModelAttribute๋ฅผ ์ ์ฉํ ๊ฒฝ์ฐ ๋ฐ๋์ @ModelAttribute("page")์ ๊ฐ์ด ๊ฐ์ ์ง์ ํด์ค์ผํจ