๋ชฉ์ฐจ
1. 2023.12.6(์)
โ โ โ ์น ์ดํ๋ฆฌ์ผ์ด์ โ โ โ
/* **
!!!๋์ ์ผ๋ก ํ์ด์ง๋ฅผ ์์ฑํ๊ธฐ์ํ ๊ฒ!!!
๋์ ์ผ๋ก ํ์ด์ง ๊ทธ๋ฆฌ๋ ๊ฒ servlet
jsp ๋ง ๋ค๋ฃฌ ์ฑ
์ ์์-> servlet ๊ณผ ํจ๊ป ๋ค๋ฃธ
๊ฒฐ๊ณผ์ ์ผ๋ก jsp๋ฅผ ์ฐ์ง๋ง, ๋ด๋ถ์ ์ผ๋ก๋ servlet ์ด ๋์๊ฐ
- jsp -> html ์ด java๋ฅผ ํ๊ณ ์์
- servlet -> java ๊ฐ html ์ ํ๊ณ ์์
** */
โ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋
์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์น ๋ธ๋ผ์ฐ์ ์ ์์ฒญ์ ๋ํ์ฌ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ๋ ํ๋ก๊ทธ๋จ์ ์๋ฏธํ๋ค.
์ฌ์ฉ์๊ฐ ์ด๋ค ์ํ๋ก ๋ฌด์์ ์์ฒญํ์ผ๋์ ๋ฐ๋ผ ์ค์ค๋ก ํ๋จํ์ฌ ์๋์ผ๋ก ๊ฐ๊ฐ์ ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ
๋ ํ๋ก๊ทธ๋จ์ด๋ค.
โ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑ์์
1. ์น ๋ธ๋ผ์ฐ์
- ์ธํฐ๋ท ์ต์คํ๋ก๋ฌ, ํฌ๋กฌ, ํ์ด์ดํญ์ค, ์คํ๋ผ, ์ฌํ๋ฆฌ, ...
2. ์น ์๋ฒ(WAS: Web Application Server)
- ์น ์๋ฒ๋ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด์ฉํ์ฌ World Wide Web ์ ์ฌ์ฉํ๋ ํด๋ผ์ด์ธํธ์๊ฒ
๋ฏธ๋ฆฌ ์ ์ฅ๋ ํ์ดํผํ ์คํธ(Hyper Text)๋ฅผ ์ ๊ณตํ๋ ์๋ฒ์ด๋ค.
- ๋ํ์ ์ผ๋ก๋ MS ๊ธฐ๋ฐ IIS ์๋ฒ์ ์ ๋์ค ๊ธฐ๋ฐ์ ์ํ์น ์๋ฒ ๋ฑ์ด ์๋ค.
3. ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ
- ์ฒ๋ฆฌ ๊ฒฐ๊ณผ ๊ฐ์ ์น ์๋ฒ์ ์ ๋ฌ
- ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ค ํ์ด์ง๋ฅผ ์์ฒญํ๋๋์ ๋ฐ๋ผ ๊ทธ ๋ฌธ์๋ฅผ ๋์ ์ผ๋ก ๋ง๋ค์ด ์ ๋ฌ
- JSP, Servlet ๋ฑ์ผ๋ก ๋์ ์น ํ์ด์ง ๊ตฌ์ถ
4. ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์ฒ๋ฆฌ
โ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋ถ
1. ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ ๋ฐฉ์
- ์น ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ฅผ ํตํด ๊ฐ์ ์ ์ผ๋ก ์น ์ดํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ค.
- ๋์ฉ๋ ์ฒ๋ฆฌ์ ์ ๋ฆฌํ๋ฉฐ, CGI(Common Gateway Inerface)๋ฐฉ์์ ๋นํด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ ๋ค.
/* cgi -> ํ๊ธํ๋ก๊ทธ๋จ์ A๊ฐ ์ด์๋ค๊ฐ ๋ค์์ฌ๋์ด ์ด์๋ ๊ฒ๊ณผ ๊ฐ์ด.. */
2. ์คํฌ๋ฆฝํธ ๋ฐฉ์
- ์ฝ๋ ํํ: ์ปดํ์ผ ๋์ง ์์ ์คํฌ๋ฆฝํธ ์ฝ๋
- ์คํ ๋ฐฉ์: ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ํด์ํ ๋ค ์คํ
- ์ฝ๋ ๋ณ๊ฒฝ: ์คํฌ๋ฆฝํธ ์ฝ๋๋ง ์์
โ ์น ์ดํ๋ฆฌ์ผ์ด์
1. Servlet(Server + Appleet)
- SUN ์ฌ์์ ๋ด๋์ ๊ธฐ์ ๋ก์ JAVA ๋ผ๋ ์ธ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ๋์ ์ธ ์ปจํ ์ธ ๋ฅผ ์์ฑํ๋ ๊ธฐ์ .
JAVA ๋ผ๋ ์ฝ๋์์ HTML ํ๊ทธ๊ฐ ํผ์ฌ๋์ด ์์ด ํจ์จ์ฑ์ด ๋ค์ ๋จ์ด์ง ์ ์๋ค.
-> JAVA ๊ฐ HTML์ ํ๊ณ ์๋ ํํ. (ํ์ฅ์๋ .java -> .class)
2. JSP(Java Server Page)
- JSP ๋ํ JAVA ๋ผ๋ ์ธ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ๋ง๋ค์ด์ง ๊ฒ์ด์ง๋ง, ASP, PHP ์ฒ๋ฌ ๋์ ์ธ ์ปจํ ์ธ ๋ฅผ ์์ฑํ๊ธฐ ์ํด
์คํฌ๋ฆฝํธ ์ธ์ด ํ์์ผ๋ก ํ๋ก๊ทธ๋จ์ ์์ฑํ ์ ์์ด์ ๊ฐ๋ฐ์์๊ฒ ๋น๊ต์ ์ฌ์ด ๊ฐ๋ฐ์ ํ ์ ์๊ฒ ํ๋ค.
์ฌ์ฉ์์๊ฒ ์ง์ ํ๊ทธ๋ฅผ ์ ์ํด์ ํ์ฉํ ์ ์๋ ์ฌ์ฉ์ ์ ์ ํ๊ทธ๋ฅผ ์ง์ ํ๊ณ ์๋ ๊ธฐ๋ฅ๋ ๊ฐ๊ณ ์๋ค.
-> HTML ์ด JAVA ๋ฅผ ํ๊ณ ์๋ ํํ. (ํ์ฅ์๋ .jsp -> .html)
โ โ โ JSP(Java Server Pages) โ โ โ
1. JSP(Java Server Pages): ์น ํ๋ก๊ทธ๋จ ์์ฑ ์ธ์ด์ ํ ์ข
๋ฅ
2. JSP(Java Server Pages)๋ ๋์ (Dynamic)์ธ ์น ํ์ด์ง๋ฅผ ๋น๊ต์ ๊ฐ๋จํ ๋ง๋ค ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋
์๋ฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์๋ ์คํฌ๋ฆฝํธ(Server Side Script)๋ก
์๋ฐ ์ํฐํ๋ผ์ด์ฆ ์ดํ๋ฆฌ์ผ์ด์ ์์ UI(User Interface) ์์ญ์ ๋ด๋นํ๊ณ ์๋ค.
3. JSP(Java Server Pages)๋ ์๋ฐ์ ์๋ฒ ํ๊ฒฝ์์ ์ฌ์ฉํ๋ ์คํฌ๋ฆฝํธ ๋ฐฉ์์ ์ธ์ด๋ก ๋จ์ผ ์ค๋ ๋๋ก ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์๋น์คํ๋ค.
์์ฒญ์ด ์์ ๋๋ง๋ค... ์ฆ, ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ๋ง๋ค...
ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ๊ธฐ์กด์ CGI์ ๋ ๋ฌ๋ฆฌ ํ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๋ฉด์ ์๋น์ค๋๋ ์๋ฆฌ๋ฅผ ๊ฐ๊ณ ์๋ค.
์ด๋ฌํ ์๋ฆฌ๋ ์๋ฒ์ธก ๋ถํ๋ฅผ ์ค์ฌ์ฃผ๋ฉฐ, JSP ๋ด๋ถ์๋ ๋ณด์ฌ์ค๋ ์ฝ๋๋ง ์์ฑํ๊ณ ์ง์ ์์
ํ๋ ๋ถ๋ถ์ ์๋ฐ ๋น์ผ๋ก ๊ตฌ์ฑํ์ฌ ๋์ ๋ถ๋ฆฌํ ์ ์๋ค.
์ด๋ ์๋ก ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ์์ ํ ์ ์๋ ์ฅ์ ์ ์ทจํ๋ฉฐ, JAVA ๊ฐ ๊ฐ๊ณ ์๋ ์ฅ์ ์ธ ์ฌ์์ฉ ์ฑ์ ๋์ผ ์ ์๊ฒ ํ๋ค.
ํด๋ผ์ด์ธํธ <------------------------> ์๋ฒ
HTML, CSS, Javascript <------------> JSP(JAVA)
๋ธ๋ผ์ฐ์ (IE, CR, FF ๋ฑ) <-----------> ์น์๋ฒ(ํฐ์บฃ), ์ค๋ผํด
์์ฒญ <----------------------------> ์๋ต(HTML ์น ํ์ด์ง)
4. JSP ์คํ ๊ตฌ์กฐ
1๋จ๊ณ. ์นํด๋ผ์ด์ธํธ์์ ์น ์์์ ์น ํ๋ก๊ทธ๋จ(ํ์ด์ง) ์์ฒญ.
2๋จ๊ณ. ์น ์๋ฒ์์ ์น ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ JSP ํ๋ก๊ทธ๋จ(ํ์ด์ง) ๋ก๋.
3๋จ๊ณ. JSP ํ์ด์ง์ ๋ํ ๋ณํ ์คํ
(โป ์ด ๊ณผ์ ์์ ์ผ๋ฐ ใ.javaใ ์ธ ํ์ผ๋ก ๋ณํ๋๋ค. ใ-> Servletใ)
4๋จ๊ณ. ใ.javaใ ์ธ ํ์ผ๋ก ๋ณํ๋ Sevlet ์ ์ปดํ์ผ(.class) ๋ฐ ์คํ.
5๋จ๊ณ. ์คํ ๊ฒฐ๊ณผ๋ก ๋์ ์์ฑ๋ HTML Document ๋ฅผ ํด๋ผ์ด์ธํธ ์ธก์ ์๋ต.
6๋จ๊ณ. ์น ํด๋ผ์ด์ธํธ๋ ์๋ต๋ฐ์ HTML Document ๋ฅผ ๋ธ๋ผ์ฐ์ ์์ ์น ํ์ด์ง ํํ๋ก ์ถ๋ ฅ
5. ์ดํด๋ฆฝ์ค JSP ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ
1) ํ๋ก์ ํธ(new) ์์ฑ ์ ใDynamic Web Projectใ ์ ํ
2) ํ๋ก์ ํธ ๋ช ์ ๋ ฅ ์ ์๋ณ์ ์์ฑ ๊ท์น์ ์ค์
์๋ ๊ท์น์ ๋ฐ๋ฅด๋ฉด ใJspTest001.jspใ์ ๊ฐ์ด ๋ช ๋ช ํด์ผ ํ์ง๋ง,
ํด๋ผ์ด์ธํธ ์ธก์์ (๋์๋ฌธ์ ๊ตฌ๋ถ ์์ด) ์ข ๋ ํธํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก
์ผ๋จ ์ง๊ธ์(๋น๋ถ๊ฐ์) ใjaptest001.jspใ์ ๊ฐ์ด ๋ช ๋ช ํ๋ค.
3) Target Runtime ์ง์ -> ํฐ์บฃ ์ค์น ๋๋ ํฐ๋ฆฌ ์ฐ๊ฒฐ
4) ํ๋ก์ ํธ ์์ฑ ํ์๋ Server ํญ์์ ํฐ์บฃ ์๋ฒ ๋ฑ๋ก
(๋จ, ์๋ฒ์ ์๋ก ๋ฑ๋กํ์ ๊ฒฝ์ฐ ์๋ฒ ๊ด๋ จ ์ค์ ์ ์ฌ๊ตฌ์ฑ)
5) ํฐ์บฃ ์๋ฒ์ ํ๋ก์ ํธ ๋ฑ๋ก -> add and remove
6) ํฐ์บฃ ์๋ฒ ์์(์ฌ์์)
โป ์ด ์์ ์์...
ํฌํธ๋ฒํธ ์ค์ ๋ฐ ํ์ธ ํ์
(์ค๋ผํด์ด ์น ์์์ port 8080 ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ถฉ๋ ๋ฐฉ์ง)
ใProject Explorerใ ์ ใServerใ ๋๋ ํฐ๋ฆฌ ๋ ธ๋๋ฅผ ํ์ฅํ๋ฉด
ใserver.xmlใ ํ์ผ์ด ์กด์ฌํ๋ฉฐ, ์ด ํ์ผ์ ์ด์ด 63 ~ 65 ์ ๋ ๋ผ์ธ์ ๋ด์ฉ์ ์์ ํ๋ค.
<Connector UIRIEncoding="UTF-8" ... port="3306" />
-------------------- ----------
↑ ์ถ๊ฐ ์ฝ์
↑ ์์ (๊ธฐ๋ณธ 8080)
โป xml ํ์ผ์ ์์ ํ ํ์๋ ๋ฐ๋์ ์๋ฒ๋ฅผ ์ฌ์์ ํด์ผ ํ๋ค. check~!!!
7) JSP ํ์ด์ง ์์ฑ(ํ์ฅ์ ใ.jspใ)
-> WebContent ๋๋ ํฐ๋ฆฌ ํ์์ ์์ฑ
โป ํ์ด์ง ์์ฑ ์ ์ Encoding ๋ฐฉ์์ ์ฒดํฌ ๋ฐ ์ค์ ํ๋ค. (UTF-8)
โป JSP ๊ธฐ๋ณธ ํ์ด์ง์ ํ ํ๋ฆฟ์ HTML5 ๊ธฐ๋ฐ์ผ๋ก ์์ ํ์ฌ ์ค์ ํ๋ค. (๊ธฐ๋ณธ HTML 4.01)
8) ํฐ์บฃ ์๋ฒ๊ฐ ์คํ๋๊ณ ์๋ ์ํ์์
์น ๋ธ๋ผ์ฐ์ ์ URL ์ฃผ์์ฐฝ์ ๋ค์๊ณผ ๊ฐ์ ์ฃผ์๋ฅผ ์์ฒญํ๋ค. (ํด๋ผ์ด์ธํธ ์ ์ฅ)
http://์๋ฒ์ฃผ์:ํฌํธ๋ฒํธ/ํ๋ก์ ํธ์ด๋ฆ/ํ์ผ์ด๋ฆ.jsp
http://localhost:3306/WebApp04/jsptest001.jsp
-----------
127.0.0.1
โป ์๊ฒฉ ์ ์์ธ ๊ฒฝ์ฐ localhost(127.0.0.1) ๋์ ๋ชฉ์ ์ง ์๋ฒ์ IP Adress ๋ฅผ ์์ฑํด์ผ ํ๋ค.
โ jsp ๊ตฌ์ฑ ์์
1. ๋๋ ํฐ๋ธ(์ง์์ด)
- ํ์ด์ง์ ๋ํ ์ค์ ์ ๋ณด ์ง์ . ํด๋์ค ์์ฑ์ ๋ณ๊ฒฝ.
<%@ %>
· Page
ํ์ด์ง์ ๋ํ ๊ธฐ๋ณธ ์ ๋ณด ์ ๋ ฅ (์์ฑํ๋ ๋ฌธ์์ ํ์ , ์ถ๋ ฅ ๋ฒํผ์ ํฌ๊ธฐ, ์๋ฌ ํ์ด์ง ๋ฑ)
ํ์ฌ ๋ฌธ์๋ฅผ ๋ํ๋ด๋ ๊ฐ์ฒด
page ๋๋ ํฐ๋ธ๋ JSP ํ์ด์ง์ ๊ด๋ จ๋ ์์ฑ์ ์ ์ํ๊ณ ์ด ์์ฑ๋ค์ ์น ์ปจํ ์ด๋์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค.
๋ํ, ํ ํ์ด์ง์ page ๋๋ ํฐ๋ธ๋ ์ฌ๋ฌ ๋ฒ ๋ฑ์ฅ ํ ์ ์๊ณ ์์น๋ ๊ด๊ณ ์๋ค.
ํ์ง๋ง ๋ณดํต ํ์ด์ง ์๋จ์ ๊ธฐ์ ํ๋ค.
์ฃผ์์์ฑ
- language: ์คํฌ๋ฆฝํธ ์ฝ๋์์ ์ฌ์ฉ๋๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ง์
- contentType: ์์ฑํ ๋ฌธ์ ํ์
- import: ์ฌ์ฉํ ์๋ฐ ํด๋์ค ์ง์
- session: ์ธ์ ์ฌ์ฉ ์ฌ๋ถ ์ง์
- buffer: ์ถ๋ ฅ ๋ฒํผ ํฌ๊ธฐ ์ง์
- autoFlush: ์ถ๋ ฅ ๋ฒํผ๊ฐ ๋ค ์ฑ์์ก์ ๊ฒฝ์ฐ ์๋์ผ๋ก ๋ฒํผ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋น์ฐ๊ฒ ๋ง๋ค์ง์ ์ฌ๋ถ ์ง์
- info: ํ์ด์ง์ ๋ํ ์ค๋ช
- errPage: ์คํ ๋์ค ์๋ฌ ๋ฐ์ ์ ๋ณด์ฌ์ค ํ์ด์ง ์ง์
- pageEncoding: ํ์ด์ง ์์ฒด์ ์บ๋ฆญํฐ ์ธ์ฝ๋ฉ ์ง์
· tablib
ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(tag library)
์ฌ์ฉ์๊ฐ ๋ง๋ ํ๊ทธ ๋ชจ์(์ฌ์ฉ์๊ฐ ์ง์ ๊ธฐ๋ฅ ์ค์ )
· include
๋ค๋ฅธ ๋ฌธ์๋ฅผ ํฌํจํ๋ ๊ธฐ๋ฅ
์ฌ๋ฌ JSP ํ์ด์ง์์ ๊ณตํต์ ์ผ๋ก ํฌํจํ๋ ๋ด์ฉ์ด ์์ ๋ ์ด๋ฌํ ๋ด์ฉ์ ๋งค๋ฒ ๋ฐ๋ณตํด์ ์ ๋ ฅํ์ง ์๊ณ
๋ณ๋์ ํ์ผ์ ์ ์ฅํด ๋์๋ค๊ฐ JSP ํ์ผ์ ์ฝ์ ๋๋๋ก ํ๋ ๊ฒ -> ์์ฐ์ฑ ํฅ์
include ๋๋ ํฐ๋ธ ์ฒ๋ฆฌ ๊ณผ์ ์
์ ์ ์ผ๋ก include ์ง์์๋ฅผ ์ฌ์ฉํ JSP ํ์ด์ง๊ฐ ์ปดํ์ผ ๋๋ ๊ณผ์ ์์ include ๋๋ JSP ํ์ด์ง ์์ค ๋ด์ฉ์ ๊ทธ๋๋ก ํฌํจํด์ ์ปดํ์ผ ํ๋ค.
์ฆ, ๋ณต์ฌ& ๋ถ์ฌ๋ฃ๊ธฐ ๋ฐฉ์์ผ๋ก ๋ ๊ฐ์ ํ์ผ์ ํ๋๋ก ๊ตฌ์ฑํ ํ ๊ฐ์ด ๋ณํ๋๊ณ ์ปดํ์ผ ๋๋ค.
2. ์คํฌ๋ฆฝํธ ์์
- ์คํฌ๋ฆฝํธ ๋ฆฟ(Scriptlet)... ์คํฌ๋ฆฝ ๋ฆฟ...์คํฌ๋ฆฝํ๋ฆฟ...
JSP์ ์๋ฐ ์ฝ๋๋ฅผ ๊ธฐ์
<% %>
JSP ๋ฌธ์ ๋ด์ JAVA ์ฝ๋๋ฅผ ๊ธฐ์ ํ๋ ๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์ ์ค๋ก์ง ์๋ฐ ์ฝ๋๋ง ์ฌ ์ ์๋ค.
์คํฌ๋ฆฝํธ ๋ฆฟ์ ์ ์ธ๋ ๋ณ์๋ ์ง์ญ ๋ณ์์ ์ฑ๊ฒฉ์ ๊ฐ์ง๊ฒ ๋๋ฉฐ
(์๋ธ๋ฆฟ ์์ ์๋ service() ๋ฉ์๋ ์์ ์ ์ธ๋ ๋ณ์์ด๋ฏ๋ก...)
์๋ฐ์์ ๋ฉ์๋ ๋ด์ ์ ์ธ๋ ๋ณ์๋ผ๊ณ ํ ์ ์๋ค.
- ํํ์(Expression)
HTML ๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ์ด ํฌํจ์ํค๊ณ ์ ํ ๋ ์ฌ์ฉ
<%= %>
(์ฆ, ๋ธ๋ผ์ฐ์ ์ ๋ฑ์ฅ์ํฌ ์ ์๋ ์์ญ)
- ์ ์ธ๋ถ(Declaration)
์คํฌ๋ฆฝํธ๋ฆฟ์ด๋ ํํ์์์ ์ฌ์ฉํ ์ ์๋ ํจ์ ์์ฑ ์ ์ฌ์ฉ.
<%! %>
์คํฌ๋ฆฝํธ ๋ฆฟ์ด๋ ํ์
์์์ ์ฌ์ฉํ ์ ์๋ ๋ณ์๋ ๋ฉ์๋๋ฅผ ์ ์ํ๋
๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์ ์ ์ธ๋ถ์์ ์ ์ธ๋ ๋ณ์๋ ์๋ธ๋ฆฟ์ผ๋ก ๋ณํ๋๋ ๊ณผ์ ์์
๋ฉค๋ฒ ๋ณ์์ ์
์ฅ์ ์ทจํ๊ฒ ๋๋ฉฐ ์ ์ญ ๋ณ์์ ์ฑ๊ฒฉ์ ๊ฐ์ง๋ค.
๋ํ, ใ_jspInit()ใ, ใ_jspDestory()ใ ์ ๊ฐ์ ์๋ช
์ฃผ๊ธฐ ์ด์์ ์ํด ๋ฉ์๋๋ฅผ ์ฌ์ ์ ํ ์ ์๋ค.
F_WebApp04
ใด C:\WebStudy\WebApp04\WebContent
ใดใดjsptest001.jsp_๋๋ ํฐ๋ธ ์์ญ, ์คํฌ๋ฆฝ ๋ฆฟ ์์ญ

<%@ page contentType="text/html; charset=UTF-8"%>
<!-- ** ๋๋ ํฐ๋ธ์์ญ, page, ํ
์คํธ๋ก ์์ฑ๋ html, utf-8 ** -->
<!-- **
์๊ธด๋ชจ์์ html๊ณผ ์ ์ฌํ์ง๋ง, ๋ค๋ฅธ ๋ฌธ๋ฒ!
- html) ๋ง๋ค์ด์ ์ ๋ฌํ๋ฉด ๋
- jsp) ๊ฐ ์ํฉ์ ๋ง์ถฐ ๋ง๋ค์ด์ง ์ค๊ณ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋กญ๊ฒ ๋ง๋ฆ
** -->
<%
//Scriptlet(์คํฌ๋ฆฝํธ๋ฆฟ) ์์ญ
/* ์๋ฐ๊ฐ ์ค๊ธฐ ๋๋ฌธ์, ๋ผ์ธ๋จ์ ์ฃผ์-๋ธ๋ญ๋จ์ ์ฃผ์์ฌ์ฉ ๊ฐ๋ฅ */
String name = "๊น์ง๋ฏผ";
name += "์ ํ๊ธธ๋์ด ์๋๋ค.";
int result = 10 + 20;
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsptest001.jsp</title>
</head>
<body>
<div>
<h1>JSP ๊ด์ฐฐํ๊ธฐ</h1>
<hr>
</div>
<div>
<h2><%=name %></h2>
<h2><%=result %></h2>
</div>
</body>
</html>
ใดใดjsptest002.jsp_ใoutใ ์ถ๋ ฅ ์คํธ๋ฆผ, ใout.printlnใ-> ๋์ด์ฐ๊ธฐ,ใ\nใ-> ๋์ด์ฐ๊ธฐ,ใ<br>ใ -> ๊ฐํ

<%@ page contentType="text/html; charset=UTF-8"%>
<%
// ์คํฌ๋ฆฝํธ ์์ญ-> JSP ์์ JAVA ์ฝ๋๋ฅผ ๊ธฐ์ ํ๋(์ฌ์ฉํ๋) ์์ญ
int a= 10, b=5, c;
c = a + b;
//-- ์คํฌ๋ฆฝ ๋ฆฟ ์์ญ์์ ์ํ๋ ์๋ฐ ์ฝ๋์ ์คํ ๊ฒฐ๊ณผ๋
// ํํ์์ ์ํด HTML ๋ธ๋ผ์ฐ์ ์์ญ์ ์ถ๋ ฅ๋๋ค.
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsptest002.jsp</title>
</head>
<body>
<div>
<h1>JSP ๊ด์ฐฐํ๊ธฐ</h1>
<hr>
</div>
<div>
<!-- ํํ์ -->
<h2>ํฉ) <%=a %> + <%=b %> = <%=c %></h2>
</div>
<%
// ์คํฌ๋ฆฝ ๋ฆฟ ์์ญ
//โป ใoutใ ์ ๋ด์ฅ ๊ฐ์ฒด๋ก์ ์ถ๋ ฅ ์คํธ๋ฆผ์ด๋ค.
out.print("1) ํฉ: " + a + "+" + b + "="+ c);
out.println("2) ํฉ: " + a + "+" + b + "="+ c);
out.println("3) ํฉ: " + a + "+" + b + "="+ c);
/* ** print, println์ HTML document ์์ญ์์ ๋ง๋ค์ด์ง๋ฏ๋ก ๊ฐํ๋์ง ์์ ** */
out.println("<br></br>");
out.println("4) ํฉ" + a + "+" + b + "="+ c);
out.println("5) ํฉ" + a + "+" + b + "="+ c + "<br>");
/* ** out.println -> ๋์ด์ฐ๊ธฐ ๋จ ** */
out.println("<br></br>");
String str = String.format("6) ํฉ: %d + %d = %d", a, b, c);
out.print(str);
out.print(str);
out.println("<br></br>");
/* ** \n -> ๋์ด์ฐ๊ธฐ๋จ ** */
str = String.format("7) ํฉ: %d + %d = %d\n", a, b, c);
out.print(str);
out.print(str);
out.println("<br></br>");
/* ** <br> -> ๊ฐํ๋จ ** */
str = String.format("8) ํฉ: %d + %d = %d<br>", a, b, c);
out.print(str);
out.print(str);
%>
</body>
</html>
ใดใดjsptest003.jsp_ใ_jspInit()ใ ๋ฉ์๋, ใ_jspDestroy()ใ ๋ฉ์๋, ใ_jspService()ใ ๋ฉ์๋

<%@ page contentType="text/html; charset=UTF-8"%>
<%!
// โ ์ ์ธ๋ถ ์์ญ -> ํจ์ ์ ์๊ฐ ๊ฐ๋ฅํ ์์ญ
// ์ ์ธ๋ถ์์ ์ ์ธํ ๋ณ์ a
int a = 10;
// ์ ์ธ๋ถ์์ ์ ์ํ ํจ์ sum()
int sum(int x)
{
int s=0;
for (int i=1; i<=x; i++)
s += i;
return s;
}
%>
<%
// โ ์คํฌ๋ฆฝ ๋ฆฟ ์์ญ
// ์คํฌ๋ฆฝ๋ฆฟ ์์ญ์์ ์ ์ธํ ๋ณ์ b
int b=0;
a++;
b++;
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsptest003.jsp</title>
</head>
<body>
<div>
<h1>JSP ๊ด์ฐฐํ๊ธฐ</h1>
<hr>
</div>
<div>
<h2>๋ณ์์ ๊ฐ ํ์ธ</h2>
<h3>a: <%=a %></h3>
<h3>b: <%=b %></h3>
</div>
<!--
โป ์์ฒญํ ํ์ด์ง(jsptest003.jsp)์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ํ ์๋ก๊ณ ์นจ์ ๋ฐ๋ณตํด ๋ณด๋ฉด..
a ๋ณ์(์ ์ธ๋ถ์ ์ ์ธํ ๋ณ์) ๊ฐ๋ง ๊ณ์ ์ฆ๊ฐํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
a ๋ณ์ ๊ฐ์ฐ ๊ณ์ ์ฆ๊ฐํ๋ ์ด์ ๋ฅผ ํ์ธํ๊ธฐ ์ํด์๋
์๋ธ๋ฆฟ(survlet) ์ฝ๋๋ฅผ ๋ถ์ํด ๋ณด์์ผ ํ๋ค.
์ฆ, jsptest003.jsp ์ ์๋ธ๋ฆฟ ์ฝ๋๋ฅผ ๋ถ์ํด์ผ ํ๋ค.
- ๊ฒฝ๋ก
C:\WebStudy\.metadata\.plugins\org.eclipse.wst.server.core
\tmp0\work\Catalina\localhost\WebApp04\org\apache\jsp
----------- --------
workspace project
- ํ์ผ
jsptest003_jsp.java
------------ ----
jsp ํ์ผ๋ช
์๋ธ๋ฆฟ(servlet)์ ํ์ฅ์ -> ์ปดํ์ผ ์ด์
==>> ๋ณ์ a๋ ํด๋์ค(jsptest003_jsp)์ ์ ์ญ๋ณ์๋ก ์ ์ด๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ด๋ ๊ฐ์ฒด๊ฐ ์๋ฉธ๋๊ธฐ ์ ๊น์ง๋ ๊ณ์ ๊ฐ์ด ์ ์ง๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
๋ณ์ b๋ ๋ฉ์๋(jsptest002_jsp ํด๋์ค์ _jspService() ๋ฉ์๋) ๋ด์
์ง์ญ๋ณ์๋ก ์ ์ธ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
ใ_jspInit()ใ ๋ฉ์๋์ ใ_jspDestroy()ใ ๋ฉ์๋๋
์๋น์ค๊ฐ ์์๋ ๋์ ๋๋ ๋ ํ ๋ฒ์ฉ๋ง ์คํ๋๋ ๋ฉ์๋์ด๋ค.
๋ฐ๋ฉด.. ใ_jspService()ใ ๋ฉ์๋๋
๋ธ๋ผ์ฐ์ ์ ์ํด ํ์ด์ง๊ฐ์์ฒญ๋ ๋ ๋ง๋ค ๋งค๋ฒ ์คํ๋๋ ๋ฉ์๋์ด๋ค.
์ด๋ก ์ธํด ๋ณ์ b๋ ํ์ด์ง์ ๋ํ ์์ฒญ์ด ๋ฐ์ํ ๋ ๋ง๋ค
์๋กญ๊ฒ ์ด๊ธฐํ ๋๋ ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋๋ ๊ฒ์ด๋ค.
JSP ํ์ด์ง์ ์คํฌ๋ฆฝ๋ฆฟ ์์ญ์์ ์ ์ธ๋ ๋ชจ๋ ๋ณ์๋
์ด ใ_jspService()ใ ๋ฉ์๋์ ์ง์ญ๋ณ์๊ฐ ๋๋ค.
๋ํ, JSPํ์ด์ง์ ์ ์ธ๋ถ์์ญ์์ ์ ์ธ๋ ๋ชจ๋ ๋ณ์๋
ํด๋์ค์ ๋ฒ์ญ๋ณ์(์ธ์คํด์ค ๋ณ์)๊ฐ ๋๋ค.
JSP ํ์ด์ง์์ ๋ฉ์๋ ์ ์ ์
์คํฌ๋ฆฝ๋ฆฟ ์์ญ ๋ด๋ถ์์๋ ์ ์ํ ์ ์๋ค.
์๋ธ๋ฆฟ์ผ๋ก ๋ณํ๋๋ ๊ณผ์ ์์
๋ฉ์๋ ๋ด๋ถ์ ๋ ๋ค๋ฅธ ๋ฉ์๋๊ฐ ๋ค์ ์ ์๋๋ ์ํฉ์ด ๋์ด๋ฒ๋ฆฌ๊ธฐ๋๋ฌธ์
๋ฌธ๋ฒ์ ์ผ๋ก ์๋ชป๋ ํํ์ด ๋๋ ๊ฒ์ด๋ค.
์ ์ธ๋ถ๋.. ๋น๋ก ์ฌ์ฉ๋น๋๊ฐ ๋ฎ์ง๋ง..
๋ฉ์๋๋ ์ ์ธ๋ถ ๋ด๋ถ์์๋ง ์ ์ํ ์ ์๋ ๊ฒ์ด๋ค.
-->
</body>
</html>
ใดใดjsptest004.java_์๋ธ๋ฆฟ ๊ด๋ จ ์ค์ต(GenericServlet ์ ์์๋ฐ๋ ํด๋์ค๋ก ์ค๊ณ)







/* ==================
Test004.java
- Servlet ์ค์ต
=================== */
// ํ์ฌ... ์๋ฐ์ ๊ธฐ๋ณธ ํด๋์ค Test004
// ์ด๋ฅผ... Servlet ์ผ๋ก ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ
// GenericServlet ์ ์์๋ฐ๋ ํด๋์ค๋ก ์ค๊ณ -> Servlet
package com.test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
//import javax.servlet.Servlet;
//public class Test004 implements Servlet
//public abstract class Test004 extends GenericServlet
public class Test004 extends GenericServlet
{
private static final long serialVersionUID = 1L;
// GenericServlet ์ ์ถ์๋ฉ์๋ ์ฌ์ ์~!!!
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException
{
// ์์ฒญ์ ๋ํ ์๋ต ๋ฐฉ๋ฒ
response.setContentType("text/html; charset=UTF-8");
try
{
// ์ถ๋ ฅ ์คํธ๋ฆผ ๊ตฌ์ฑ
PrintWriter out = response.getWriter();
out.print("<html>");
out.print("<head>");
out.print("<title>");
out.print("Test004.java");
out.print("</title>");
out.print("</head>");
out.print("<body>");
out.print("<div>");
out.print("<h1>");
out.print("์๋ธ๋ฆฟ ๊ด๋ จ ์ค์ต");
out.print("</h1>");
out.print("<hr>");
out.print("</div>");
out.print("<div>");
out.print("<h2>");
out.print("GenericServlet ํด๋์ค๋ฅผ ์ด์ฉํ ์๋ธ๋ฆฟ ํ
์คํธ");
out.print("</h2>");
out.print("</div>");
out.print("</body>");
out.print("</html>");
} catch (Exception e)
{
System.out.println(e.toString());
}
}
}
ใดใด web.xml_์์ฑํ server ์ฌ์์!!!
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>WebApp04</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- **Servlet ๊ณผ Servlet-mapping์ด ๊ฐ์ ์ด๋ฆ์ด์ด์ผ ํจ** -->
<servlet>
<servlet-name>Test004</servlet-name> <!-- ๋งคํ์ ๊ตฌ๋ถํ๊ธฐ ์ํ ์ด๋ฆ -->
<servlet-class>com.test.Test004</servlet-class> <!-- Serlvet ํด๋์ค ์ด๋ฆ -->
</servlet>
<servlet-mapping>
<servlet-name>Test004</servlet-name>
<url-pattern>/test004</url-pattern> <!-- Serlvet ๋์ํ๋ URL -->
</servlet-mapping>
</web-app>

http://localhost:3306/WebApp04/test004
'๐ ๋ฐฐ์ฐ๊ณ ์ตํ๊ธฐ + > Web' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| (73)[Web]9์ผ์ฐจ: โ JSP ๋ฐ์ดํฐ ์ก์์ ์ค์ต โ , โ GET ๋ฐฉ์๊ณผ POST ๋ฐฉ์ โ (1) | 2023.12.07 |
|---|---|
| (73)[Web]9์ผ์ฐจ: ((JSP))F_WebApp04>Test005, F_WebApp05 (1) | 2023.12.07 |
| (72)[Web]8์ผ์ฐจ: ((Javascript))F_WebApp03>Test037~038 (2) | 2023.12.06 |
| (71)[Web]7์ผ์ฐจ: ((Javascript))F_WebApp03>Test031~036 (2) | 2023.12.05 |
| (70)[Web]6์ผ์ฐจ: ((Javascript))F_WebApp03>Test026~030 (1) | 2023.12.04 |