JSP ๊ฒ์ํ ํ๋ก์ ํธ ํ์ด์ง์์๋ ๊ฐ๋จํ ๊ฒ์๊ธ ๋ฑ๋ก ์กฐํ ์์ ์ญ์ ๋ฅผ ํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง ๋์ ์น์ฌ์ดํธ๋ฅผ ๊ฐ๋ฐํด ๋ณด๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค.
ํ๋ก์ ํธ ์์ฑ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธํ
JSP ๊ฒ์ํ ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํ ๊ฐ์ฅ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธํ
ํ๋ ์์
์ ์งํํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์ฌ์ ์ค๋น ์ฌํญ
โข
JDK 1.8 ๋ฒ์ ์ด์ ์ค์น
โข
IDE - Eclipse ์ค์น
์ด๋ฒ ํ๋ก์ ํธ๋ jdk1.8 ๋ฒ์ ์ด์์์ ์ดํด๋ฆฝ์ค IDE ๋ฅผ ์ฌ์ฉํด์ ์งํํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค ์ฌ์ ์ ์ค์น๊ฐ ๋์ด ์์ง ์์ ๋ถ๋ค์ ์์ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ธํ
ํ์๋ฉด ๋๊ฒ ์ต๋๋ค.
์์ ์์
1.
์๋ฐ ์น ํ๋ก์ ํธ ์์ฑ
a.
Dynamic Web Project
2.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธํ
a.
๋ผ์ด๋ธ๋ฌ๋ฆฌ
i.
MySQL ๋๋ผ์ด๋ฒ (JDBC)
???
iii.
ํ์ผ ์
๋ก๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
???
b.
์๋ฐ ์น ํ๋ก์ ํธ ์์ฑ
1.
[File] > [New]
2.
[Dynamic Web Project]
3.
์ดํด๋ฆฝ์ค๋ฅผ ์คํํด์ [File] ๋ฉ๋ด์ [New] ๋ฉ๋ด๋ก ๋ค์ด๊ฐ์ Dynamic Web Project ๋ฅผ ์ ํํ๋๋ก ํ๊ฒ ์ต๋๋ค.
.ํ๋ก์ ํธ ์ด๋ฆ์ ๊ฐ๋จํ๊ฒ โBoardโ ๋ผ๊ณ ํ๊ณ , ์น ์ดํ๋ฆฌ์ผ์ด์
์๋ฒ๋ ์ํ์น ํฐ์บฃ 9.0 ๋ฒ์ ์ ์ฌ์ฉํ๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ํ ์๋ธ๋ฆฟ ๋ฒ์ ์ 4.0 ๋ฒ์ ์ ์ ํํ๊ณ ๋ค์์ผ๋ก ๋์ด๊ฐ๊ฒ ์ต๋๋ค.
์ด ํ๋ฉด์์๋ ํ๋ก์ ํธ์ ๋น๋ ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ฅผ ์ค์ ํฉ๋๋ค ๊ธฐ๋ณธ ๊ฐ์ผ๋ก ์ธํ
๋ ๋๋ก ๋๋๊ณ ๋ค ๋ชป ๋ค์์ผ๋ก ๋์ด๊ฐ๊ฒ ์ต๋๋ค.
์ด ํ๋ฉด์ ์น ๋ชจ๋์ ์ค์ ํ๋ ํ๋ฉด์
๋๋ค. ์ด ํ๋ฉด์์๋ Context root ๊ทธ๋ฆฌ๊ณ Content directory๋ฅผ ์ค์ ํฉ๋๋ค. ๋ํ web.xml ํ์ผ์ ์์ฑํ ์ง ์ฌ๋ถ๋ฅผ ์ฒดํฌํ ์ ์์ต๋๋ค.
์ค์ | ๋ด์ฉ |
Context root | ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฃจํธ ๊ฒฝ๋ก (์ฃผ๋ก ํ๋ก์ ํธ ์ด๋ฆ๊ณผ ๋์ผํ๊ฒ ์ง์ ) |
Content directory | JSP ํ์ผ ๋ฐ ์ ์ ์์(html,css,js,img ๋ฑ) ์ด ์์นํ๋ ๊ฒฝ๋ก |
web.xml | ์น ์ ํ๋ฆฌ์ผ์ด์
์ค์ ํ์ผ |
Context
๋ฌธ๋งฅ ๋ฐ ์ํฉ์ ๋ฐ๋ผ ์ดํด๋๋ ํ ์ฐจ์ ๋์ ๊ณต๊ฐ์ด๋ ์์ญ.
Context ๋ผ๊ณ ํ๋ ์ฉ์ด๋ ํ๋ก๊ทธ๋๋ฐ์ด๋ ์ปดํจํ
๋ถ์ผ์์, ์ด๋ค ์ํฉ์ด๋ ํ๊ฒฝ์ ์ค๋ช
ํ ์ ์๋ ์์ญ์ด๋ ๊ฒฝ๋ก๋ฅผ ๋งํฉ๋๋ค.
์ฌ๊ธฐ์ ์ค์ ํ๋ Context root๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ํธ์คํ
ํ์ ๋ ํด๋น ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๊ทผํ ์ ์๋ ์ต ์์ ๊ฒฝ๋ก๋ฅผ ๋งํฉ๋๋ค. ์ดํด๋ฆฝ์ค์์๋ ๊ธฐ๋ณธ ๊ฐ์ผ๋ก ํ๋ก์ ํธ ์ด๋ฆ๊ณผ ๋์ผํ๊ฒ ์ง์ ๋ฉ๋๋ค.
Content directory
์ปจํ
์ธ ๋๋ ํ ๋ฆฌ๋ JSP ํ์ผํ๊ณ ์ ์ ์์์ด ์์นํด์ผ ํ ๊ฒฝ๋ก๋ฅผ ๋งํฉ๋๋ค.
web.xml
web.xml ํ์ผ์ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์ค์ ํ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ง์ ํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค.
โข
๋ฃจํธ ํ์ด์ง ์ค์ (welcome file)
โข
์๋ธ๋ฆฟ ๋งคํ
โข
ํํฐ ์ค์
โข
์๋ฌ ํ์ด์ง ์ค์
๊ฒฐ๊ณผ ํ๋ฉด
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธํ
์ด์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ์ผ๋ ๊ฒ์ํ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธํ
ํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ
โข
JDBC (Java Database Connectivity)
โฆ
MySQL Connector/J
โข
JSTL
โข
ํ์ผ ์
๋ก๋
โฆ
commons-io
โฆ
commons-fileupload
JDBC๋ ์๋ฐ ์ดํ๋ฆฌ์ผ์ด์
์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ์กฐ์ํ๊ธฐ ์ํ api์
๋๋ค. ์ด ํ์ด์ง์์๋ JDBC ์ค์์ mysql ๋ฐ์ดํฐ๋ฒ ์ด์คํ๊ณ ์ฐ๊ฒฐํ๋ JDBC ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ๋๋ก ํ๊ฒ ์ต๋๋ค.
JSTL ์ JSP ์์ ์ฌ์ฉํ ์ ์๋ ํ์ค ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. JSTL ์ ์ฌ์ฉํ๋ฉด JSP ํ์ด์ง ๋ด์์ ์๋ฐ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์กฐ๊ธ ๋ ๊ฐ๊ฒฐํ๊ณ ๊ฐ๋
์ฑ์ ๋์ฌ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฃผ๋ก JSP ํ์ด์ง ๋ํด์ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ์ ํ์ฉํ๊ฑฐ๋ ๋ฐ์ดํฐ ํฌ๋งท์ ์ฒ๋ฆฌํ๊ฑฐ๋ ๋ฐ์ดํฐ ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
์๋ธ๋ฆฟ ๋ฐ JSP ์์ ํ์ผ ์
๋ก๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด์๋ ์ฃผ๋ก commons-fileupload ๋ cos ํ์ผ ์
๋ก๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ํ๋ก์ ํธ์์๋ commons-fileupload ๋ฅผ ์ฌ์ฉํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค..
1. MySQL ๋๋ผ์ด๋ฒ
์์ ๋งํฌ๋ฅผ ํด๋ฆญํ์๋ฉด JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฐ๋ก ๋ค์ด๋ก๋ ํ ์ ์์ต๋๋ค.
ํด๋น ์ฌ์ดํธ๋ก ์ด๋ํด์ Platform Independent ๋ฅผ ์ ํํ๊ณ ๋งฅ OS ํ๊ฒฝ์ ํ๋ฉด TAR ์์นด์ด๋ธ ์๋์ฐ OS ํ๊ฒฝ์ด๋ผ๋ฉด ZIP ์์นด์ด๋ธ๋ฅผ ์์ถํด์ ๋ฅผ ํ์๋ฉด ๋๊ฒ ์ต๋๋ค.
์์ถ์ ํด์ ํ๊ณ ๋๋ฉด mysql-connector-j j๋ผ๊ณ ํ๋ JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ณผ ์๊ฐ ์์ต๋๋ค.
WEB-INF/lib ๋๋ ํ ๋ฆฌ์ JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ๋ฅผ ์ถ๊ฐํด์ฃผ์ธ์. ํ์ผ ํด๋์์ ctrl + C ํ๊ณ ์ดํด๋ฆฝ์ค์์ ctrl + V ํ๋ฉด ์ฝ๊ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก WEB-INF/lib ๋๋ ํ ๋ฆฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(JAR ํ์ผ)๋ฅผ ๋ฐฐ์นํ๋ฉด ์น ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ(์: Tomcat, Jetty ๋ฑ)๊ฐ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ธ์ํฉ๋๋ค. ์ด ๋๋ ํ ๋ฆฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ์ถ๊ฐํ๋ฉด ์น ์ ํ๋ฆฌ์ผ์ด์
์ด ์คํ๋ ๋ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ class-path ์ ์ถ๊ฐ๋์ด ์น ์ ํ๋ฆฌ์ผ์ด์
์์ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.
2. JSTL ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์์ ๋งํฌ๋ฅผ ํด๋ฆญํ์๋ฉด JSTL ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฐ๋ก ๋ค์ด๋ก๋ ํ ์ ์์ต๋๋ค.
๋ชจ๋ | ๋ด์ฉ |
spec | JSTL ์คํ ์์ฒด๋ฅผ ์ ์ํ ์ธํฐํ์ด์ค์ ํด๋์ค๋ฅผ ํฌํจ |
impl | JSTL์ ํต์ฌ ๋ก์ง๊ณผ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ตฌํ์ด ํฌํจ |
jstlel | JSTL ํ๊ทธ์์ ๋ณ์์ ํํ์์ ๋ค๋ฃจ๊ธฐ ์ํ ์ธ์ด๋ก, ${} ํํ์์ ํ๊ฐํ๋ ๋ก์ง ํฌํจ |
compat | ์ด์ ๋ฒ์ ์ JSTL๊ณผ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ์๋ก์ด JSTL ๋ฒ์ ์ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ์ ๋์์ ์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ |
1.
JSTL ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ค์ด๋ก๋
a.
taglibs-standard-compat-1.2.5.jar
b.
taglibs-standard-impl-1.2.5.jar
c.
taglibs-standard-jstlel-1.2.5.jar
d.
taglibs-standard-spec-1.2.5.jar
2.
JSP ํ๋ก์ ํธ ์ ํฌํจํ๊ธฐ
a.
[WEB-INF] > [lib] ํด๋์ ์ถ๊ฐ
JSTL ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐํ๊ธฐ
JSTL ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ 4๊ฐ๋ฅผ ๋ค์ด๋ก๋ ๋ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํด๋์ ์ถ๊ฐํด ์ค๋๋ค.
3. ํ์ผ ์ ๋ก๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
3.
ํ๋ก์ ํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ ํฌํจํ๊ธฐ
a.
Project
i.
webapp/WEB-INF/lib
ii.
commons-io.jar ํ์ผ ์ ์ฅํ๊ธฐ
iii.
commons-fileupload.jar ํ์ผ ์ ์ฅํ๊ธฐ
ํ์ผ ์
๋ก๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ธ commons-fileupload ์ commons-io ๋ค์ด๋ก๋ ๋ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํด๋์ ์ถ๊ฐํด ์ค๋๋ค.
ํฐ์บฃ ์๋ฒ ์ฐ๋
์น ์ดํ๋ฆฌ์ผ์ด์
์ ์คํ ํ ์ ์๋๋ก ํฐ์บฃ ์๋ฒ๋ฅผ ์ค์นํ๊ณ ์ด๋ฅผ ์ดํด๋ฆฝ์ค์์ ์คํํ ์ ์๋๋ก ์ฐ๋ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
1.
[File] > [New] > [Other]
2.
[Server]
3.
Tomcat v9.0 Server
a.
[Browse] > ์น์๋ฒ ์์น ์ค์
b.
jre > JRE ์ ํ
Ctrl + N ์ด๋ [File] ๋ฉ๋ด์ [New] ๋ฉ๋ด์์ [Other] ๋ฅผ ํด๋ฆญํฉ๋๋ค.
server ๋ฅผ ๊ฒ์ํ์ฌ ์ ํํ๊ณ ๋ค์์ ๋๋ฆ
๋๋ค.
์ฌ์ฉํ ์น ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ ๋ฐ ๋ฒ์ ์ ์ ํํฉ๋๋ค. ์ฌ๊ธฐ์๋ Tomcat v.9.0 ์ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
[Browse] ๋ฒํผ์ ๋๋ฌ, ์ค์ ๋ก ํฐ์บฃ์ด ์ค์น๋ ์ค์น ๊ฒฝ๋ก๋ฅผ ์ง์ ํด ์ค๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ํฐ์บฃ์ ์๋ ๊ฒฝ๋ก์ ์ค์น๋ฉ๋๋ค.
C:\Program Files\Apache Software Foundation\Tomcat 9.0
Bash
๋ณต์ฌ
[Finish] ๋ฒํผ์ ๋๋ฌ ํฐ์บฃ ์๋ฒ ์ค์ ์ ์๋ฃํฉ๋๋ค.
[Servers] ํญ์ ์ด์ด๋ณด๋ฉด ์๋ก ์์ฑ๋ ์๋ฒ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.