์๋ ํ์ธ์
๊ณต๋ถํ๋ ์ ์ด์ ๋๋ค.
Java ์ MVC ๊ทธ๋ฆฌ๊ณ JSTL EL ์ด ์ด๋ป๊ฒ ์์ฉํ๋ ์๋ฆฌ์ธ์ง ๊ณต๋ถํด๋๋ก ํฉ์๋ค
Java
<% %> : ์คํฌ๋ฆฝํธ ๋ถ๋ถ
- ํด์ํด์ฃผ๋ Tomcat
- ์ต์ข ๊ฒฐ๊ณผ ๋ ๋๋ง์ JSP
JSTL
-JSP์์ ๋ง๋ค์ด ๋์ ํ๊ทธ
- ์ด๋ฏธ ๋ง๋ค์ด์ ธ์๋ ํ๊ทธ๋ฅผ ์ด์ฉํ๋ ๊ฒ
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- MVN (Maven ) Repository ์์ ํ์ํ API๋ฅผ ๊ฒ์์ ํด์, ์ง์ ๋ค์ด๋ก๋๋ฅผ ํ ์ ์๊ณ , dependency๋ฅผ ๋ณต์ฌํ ์ ์์ต๋๋ค
- ํด๋น ์ฝ๋๋ฅผ dependency์ ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํ์ฌ ๊ด๋ฆฌ๋ฅผ ์ํํฉ๋๋ค
๋งํฌ :
https://mvnrepository.com/repos/central
jar ํ์ผ ์์น๋ Dynamic Project๋ฅผ ๋ง๋ค๊ณ WebContent์์ Web-INF์์ ํด๋น ์์น์ ๋์ต๋๋ค.
core๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ฐ๊ธฐ ๋๋ฌธ์
<%@taglib prefix="c" uri= "http://java.sun.com/jsp/jst/core" %> ๋ผ๊ณ ์ต์๋จ์ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
๋งค๋ฒ ์ฝ๋๋ฅผ ์์ฑํ ๋๋ง๋ค ๋ถ์ฌ๋๊ณ ์์ํด์ผ ํ๊ทธ์์ prefix c๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋จ์ถํค๋ c์ด๋ฉฐ for๋ฌธ์ ์คํํ ๋, ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ๋๋ก ํฉ๋๋ค
</c:forEach var="i" begin="1" end="5" step="1">
JSTL + EL
Jsp Standard Tag Library + Expression Language
<c:forEach var="i" begin="1" end="5" step="1">
<font size="${i}"> JSTL + EL </font><br>
๋ฐ๋ณต๋ฌธ์ผ๋ก, ์ ์ฐจ ์ปค์ง๋ ๊ธ์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
EL(Expression Language)
1) ๋ชฉ์
<%= %>, out.println() ๊ณผ ๊ฐ์ JSP๋ฅผ ํ์ฉํ๋ ์๋ฐ์ฝ๋๋ ๋งค๋ฒ ์ด๊ณ ๋ซ์์ค์ผ ํ๋ฉฐ, ๋ค๋ฅธ html ํ๊ทธ์ ๋ค๋ฅด๊ฒ ์๊ฒผ์ต๋๋ค.
๊ทธ๋์ ์ด๋ฐ ์ด์ง์ ์ธ ๊ฒ์ ์ค์ด๊ณ ์ ์ข ๋ Simple ํ ์ถ๋ ฅ์ ์ง์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๊ธฐ ์์ํ์ต๋๋ค.
๋ฐฐ์ด์ด๋ ์ปฌ๋ ์ ์์๋ ์ฌ์ฉ๋์ด ์ง๋๋ค.
JavaBean์ Property ์์๋ ์ฌ์ฉ๋ฉ๋๋ค.
2) ๋ฌธ๋ฒ
Attribute ํ์์์๋ <%=i %> ๋ฅผ ์ฐ์ง ์๊ณ ${i} ๋ก ์ธ ์ ์์ต๋๋ค
Parameter ํ์์์๋ ${param.abc} ๊ฐ์ ํ์์ผ๋ก ์ฌ์ฉ๋์ด ์ง๋๋ค.
์ฌ๊ธฐ์ i ๋ ์๋ฐ์์ var๋ก์์ ๋ณ์ ์ด๋ฆ์ด๋ฉฐ, EL ์์์๋ Attribute ์ด๋ฆ์ผ๋ก ํด์๋์ด์ง๋๋ค
๊ฐ์ ์ฐพ์๋ Attribute ๋ ์์ Scope ์์ ํฐ Scope๋ก ์ฐพ๋๋ฐ, ํ๋ก์ธ์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค
page -> request -> session -> application
& attribute์ด๋?
๋ฉ์๋๋ฅผ ํตํด ์ ์ฅ๋๊ณ ๊ด๋ฆฌ๋๋ ๋ฐ์ดํฐ์ ๋๋ค
PageContext / Request ์์ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ
setAttribute("key", value) = ๊ฐ์ ๋ฃ๋ ๊ฒ์ ๋๋ค
getAttribute("key") = ๊ฐ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋๋ค
removeAttribute("key") = ๊ฐ์ ์ง์ฐ๋ ๊ฒ์ ๋๋ค
session์์ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ
set/ get /remove ๋ ๋์ผํ๋ฉฐ, ์ถ๊ฐ์ ์ผ๋ก invalidate() ์ ๊ฐ์ ์ ๋ถ ์ง์ฐ๋ ๊ฒ์ ๋๋ค.
DB์์ ๊ฒ์ํ ํ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ด 2์ฐจ์ ๋ฐฐ์ดํํ๋ก ์ ์ฅ์ด ๋์ด์ง๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ฐ์์๋ ๊ฐ Value (row1๊ฐ) ๋ฅผ list ํ์นธ์ ๋ด๊ณ ์์ต๋๋ค.
Java ์์๋ list ๊ตฌ์กฐ๋ฅผ ๋ณด๋ด๋๋ฐ, list<BoardVO> ํํ์ด๋ค
Controller(Servlet) ์ html์ ์ด์ฉํด์ ์น ํ์ด์ง๋ฅผ ๋ฉ์ง๊ฒ ๊ตฌ์ฑํด์ผํ๋คhtml ์ฝ๋๋ฅผ ์ ์ฐ๋ JSP๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์๋ํ๋ฉด view๋ฅผ ๋ด๋นํ๊ธฐ ๋๋ฌธ์ด๋ค.
Client๋ ์์ฒญ์ ํ๊ฒ ๋๋๋ฐ, Controller์๊ฒ request๋ฅผ ์์ฒญํ๋ฉด, Controller๋ View(JSP) ๋จ์ผ๋ก ํด๋น ์์ฒญ์ ๋๊ธฐ๊ฒ ๋ฉ๋๋ค. ์ด๊ฒ์ Forward(ํฌ์๋)๋ผ๊ณ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ํ์์ ์ด๋ค ์๋ฃ๋ฅผ ์๋ด์(Controller)์๊ฒ ์์ฒญํ์๋, ์๋ด์์ด ๋ฐ๋ก ์ฒ๋ฆฌํ์ง ์๊ณ ๋ฐ์ ์ง์์ ์์ผ์ ํด๋น ์์ ์ ๋ค๋ฅธ ๋ถํ ์ง์(View JSP)์๊ฒ ๋งก๊ฒจ์, ์์ ์ ์ํํ์๋ ๊ณ ๊ฐ(Client)๋ Controller์๊ฒ ๋ต์ ๋ฐ๋ ๊ฒ์ ์๊ฐํด ๋ณผ ์ ์์ต๋๋ค.
Client๋ Forwarding ์์ ์ ๋ํด์ ๋ชจ๋ฅผ ์ ์์ต๋๋ค. ํฌ์๋ฉ์ด ์ค์ํ ์ด์ ์ MVC ๋ฅผ ์ ์ฒด์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ์๊ฐํ ์ ์์ต๋๋ค
ํ๋ก๊ทธ๋จ ์์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ์๋๋ ์ด๋ค ๋ฐฉ์์ ์ฌ์ฉํ์๊น์?
ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ํด๋น ํฌ์๋ ์์ ์ ์ํํ๊ฒ ๋ฉ๋๋ค.
ArrayList๋ฅผ ์ค์ผํ๋๋ฐ, ํ์ค ์ธ๊ณ์์๋ ๊ทธ๋ฅ ํด๋น ์๋ฃ๋ฅผ ์ค ์ ์์ต๋๋ค. ํ์ง๋ง, ์๋ฐ, ์ปดํจํฐ์์๋ 'set attribute' ๋ฅผ ํตํด์ , 'get Attribute' ๋ฅผ ํตํด์ ์์ ์ ์ํํฉ๋๋ค. ์ฌ๊ธฐ์ 1:1 ๊ด๊ณ๊ฐ ์๋๋ผ, ๋ค๋ฅธ ์ฌ๋ฌ ์ฌ๋๋ค์๊ฒ ์ค์ผํ ๋๋ 'session' ์ ์ฌ์ฉํด์ผ ํ๋ฉฐ, ํ๋ช ์๊ฒ ์๋ฃ๋ฅผ ์ค์ผํ๋ ๊ฒฝ์ฐ๋ 'request' ๋ฅผ ํด์ผํฉ๋๋ค. request ๋ ๊ฐ์ฒด ๋ฐ์ธ๋ฉ(binding) ์ด๋ผ๊ณ ํฉ๋๋ค.
์ด๋ ์ธ์ฆ์ ๊ฐ๋ ์ด ๋์ค๊ฒ ๋ฉ๋๋ค. ๋ชจ๋ ์ฌ์ฉ์๊ฐ ํด๋น ์์ฒญ์ ์ํํ๋ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์, ํน์ ์ฌ์ฉ์๊ฐ ๋๊ตฌ ์ธ์ง์ ๋ํด์ ์ธ์ฆ์ ํ ํ์๊ฐ ์์ต๋๋ค.
client ๊ฐ ์๋ฒ๋จ์ ์์ฒญ์ ํ๋ ๊ฒฝ์ฐ
client ๊ฐ controller์๊ฒ ์์ฒญ์ ํ๋ฉด Tomcat ์๋ฒ์์๋ 2๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ฑ๋ฉ๋๋ค.
์์ฒญ ๊ฐ์ฒด์ ์๋ต ๊ฐ์ฒด์ ๋๋ค.
์์ฒญ๊ฐ์ฒด๋ HttpServletRequest /์๋ต๊ฐ์ฒด๋ HttpServletResponse ๋ก ์์ฑ์ด ๋ฉ๋๋ค.
ip ์ฃผ์์ port ๋ฒํธ ๊ฐ์ ์ ๋ณด๋ก ํด๋น client๋ฅผ ์๋ณํ๊ธฐ ์ํด ํ ์์ผ๋ก ์์ฑ์ด ๋๋ ๊ฒ์ ๋๋ค.
request binding ์ด๋ ์์ฒญ ๊ฐ์ฒด(์ด๋ฏธ ๋ง๋ค์ด์ ธ ์๋ ๊ฐ์ฒด)์๋ค๊ฐ ์์ฒญํ ์๋ฃ๋ฅผ ๋ด์ต๋๋ค.
ํด๋น ๊ธฐ์ ์ ๋ช ์นญ = setAttribute ํน์ ๋ฉ๋ชจ๋ฆฌ์๋ค๊ฐ ์ฐ๊ฒฐ์ํค๋ ๊ฒ
์ด๊ฒ์ JSP๊ฐ ๊บผ๋ด๊ฐ๋ ๊ฒ์ getAttribute
์ด ๋ชจ๋ ๊ณผ์ ์ ๊ฐ์ฒด ๋ฐ์ธ๋ฉ ์ด๋ผ๊ณ ํฉ๋๋ค
๋ทฐ๋ ๋ฐ์ดํฐ๋ฅผ ํญ์ Controller ๋ฅผ ํตํด์ ์๋ฃ๋ฅผ ๋ฐ์์ต๋๋ค. ์ด๋ JSTL ๊ณผ EL๋ก ๋ง๋๊ฒ ๋๋ ๊ฒ์ ๋๋ค.
์ ์ฒด Map
๊ฐ์ฒด๋ฅผ request ์ ๋ฐ์ธ๋ฉํ ๊ฒ
controller ์์ Data๋ฅผ ๋ง๋ค๊ณ ๊ฐ์ฒด ๋ฐ์ธ๋ฉ๊น์ง ํด๋ณด๊ณ , ๊ฐ์ฒด๋ฅผ request์ ๋ฐ์ธ๋ฉํฉ๋๋ค
๋ฐฐ์ด์ ๋ง๋ค๊ณ , jsp์ ๋๊ธฐ๊ณ ์ถ์ด์ ๋ฐ์ธ๋ฉ์ ํ๊ณ , ๋๊ฒจ์ฃผ์๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๊ฐ ํ์๋ก ํฉ๋๋ค.
ํ๋์ ํ์ผ์์ setAttribute๋ฅผ ์คํํ๊ณ , getAttribute๋ฅผ ์คํํด๋ณผ ์๋ ์์ต๋๋ค.
<c:forEach item="${str}">
๋ผ๋ ์ฝ๋๋ request.getAttribute("str") ๋ผ๋ str์ ๋ฐฐ์ด์ ๋ฐ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
์๋ฅผ๋ค์ด, ์์๋จ์์ request.setAtribute("aaa", str) ๋ก์ str ๋ฆฌ์คํธ ๊ฐ์ฒด๋ฅผ setํ ๊ฒฝ์ฐ
๋ฐ์๋จ์์๋ request.getAttribute("aaa") ๋ก ์ค์ ํ ์ ์์ต๋๋ค.
๋ฌ๋ฌํ์๊ฐ ์๋ ๊ฒฝ์ฐ, ์์๋จ์์ ๋ถํ์ํ๊ฒ String[] = s=(String[])request.getAttribute("str"); ์ ์ค์ ํด์ค ํ์๊ฐ ์์ต๋๋ค
<%
String[] str ={"์ฌ๊ณผ","๋ฐ๋๋","ํฌ๋","์ค๋ ์ง","๊ทค"};
request.setAttribute("str",str);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title?
</head>
<body>
<c:forEach var="f" items="${str}">
${f}<br>
</c:forEach>
</body>
</html>
'๐๏ธ์ํํธ์จ์ด > ๐java & Servlete & JSP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋ฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ (๋์ด๋ ์คํ) (0) | 2022.03.18 |
---|---|
[Spring] ์คํ๋ง ์ฌ์ฉ๋ฒ (0) | 2021.11.17 |
MVC ํจํด ๊ณต๋ถํ๊ธฐ 1 (0) | 2021.09.30 |
์ปดํ์ผ, ์ปดํ์ผ๋ฌ, ์๋ฐ ์คํฌ๋ฆฝํธ, ์๋ฐ, jsp, servlet ์ฉ์ด ์ ๋ฆฌ (0) | 2021.09.22 |
jsp servlet (0) | 2021.09.20 |