
WAS
๐ WAS์ ํ๊ฐ๊ฐ ๋งค์ฐ ๊ณ ๊ฐ์ด๋ฏ๋ก ์ค๊ฐ์ 1๋ ๋ชจ๋ํฐ๋ง์ผ๋ก ํด๋๊ณ , ์ฌ๋ฌ๊ฐ์
web application์ด ์ฐ๊ฒฐ๋์ด์๋์์ด๋ค. ์ผ์ฑ๊ทธ๋ฃน์ฌ๊ฐ ์์ผ๋ฉด ์๋ ์ํ ๊ทธ๋ฃน์ฌ๊ฐ ์๋๊ฒ์ฒ๋ผ.
Servlet Context = Web Application

๐ ์ฌ์ง์ ์ค๋ช ํ์๋ฉด, ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด JVM๋ด์ ์ฌ๋ฌ ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ค.
๐ ํ๋ก์ ํธ ๋ง๋ค ํฐ ์์ด ์๊ธฐ๋๋ฐ, ํฐ ์์ด Servlet Context์ด๋ค.
๐ ํฐ ์์ ๊ฐ ๊ด๋ฆฌ์๊ฐ ๊ถํ์ ๊ฐ์ง๊ณ ์๊ณ ๊ฐ์ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋์ด์ค์์๋ค.
๐ ์ฌ๊ธฐ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ํ๋๊ฐ ๋๋ฉ์ธ์ด๋ค.
๐ ํ๋ก์ ํธ๋ด์ web-lnf ํด๋๋ web application๊ณผ ๊ด๋ จ๋ ํด๋ ์ด๋ฏ๋ก jspํ์ผ์ ๋ฃ์ผ๋ฉด ์๋๋ค. ์ด๊ณณ์ ๋ธ๋ผ์ฐ์ ๋ก ์ง์ ์ ๊ทผ์ด ์๋๋ค. (์ค์ ๊ด๋ จ ํด๋)
๐ web application context ์์ฑ โ servelt ํธ์ถ์ ์๋ธ๋ฆฟ ์ธ์คํด์ค ์์ฑ โ init( ) โ
service( ) โ destroy( )
๐ service : hello world ์ถ๋ ฅํ๋๊ฒ, tomcat์์ ์ด๋ฏธ ์์์ด ๋์ด์๋ ์ํ์ด๋ฏ๋ก override๋ก Get์ด๋ฉด doGET, POST์ด๋ฉด doPost๋ก ์ฌ์ฉํ๋ฉด ๋จ.
๐ destory : context์ ๋ด๋ถ ์ ๋ณด๊ฐ ์์ด์ง๋๊ฒ , ์๋ฒ์ข ๋ฃ์์ ์๋๋จ
๐ Servlet = java์ฝ๋์์ฑ, ์ค์๊ฐ์ปดํ์ผ,์ค์๊ฐ์คํ
๐ Servlet์ ๊ฐ์ฒด๊ฐ ํ๋ ๋ง๋ค์ด์ง.
โ ServletContext๋ ํน์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ์ญ ์ ๋ณด๋ฅผ ๋ด๋ ๊ฐ์ฒด์ด๋ฏ๋ก ํ๋์ ๊ฐ์ฒด๋ง ์์ฑ.
๐ ? , = , &๊ณผ ๊ฐ์ key = valueํํ๋ก ๊ตฌ์ฑ๋จ.
๐ GET์ ์ฟผ๋ฆฌ์คํธ๋ง : HTTP ํค๋์ ๋ถ์ด์ GET / ?=
๐ POST์ ์ฟผ๋ฆฌ์คํธ๋ง : ํค๋๊ฐ ๋๋๋ฉด \r\n\r\n ์ดํ ๋ฐ(body)์ ๋ง๋ค์ด์ง๋ค.
๋ชจ๋ธ1๋ฐฉ์
๐ JSP๋ ํ๋ฉด์์ ๊ฒฐ๊ณผ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ ์ฉ๋์ผ ๋ฟ์. ํ์ง๋ง, ์ฐ๋ฆฌ๋ JSP๋ฅผ ์ด์ฉํ์ฌ JSP์
๋ ฅํ๊ณ , JSP์
๋ ฅ์์ง, ์ถ๋ ฅ์ ํ๋ ๋ฐฉ์์ ๋ฐฐ์ฐ๋์ค.
๋ชจ๋ธ2๋ฐฉ์
๐ HTML๊ณผ JAVA์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๊ณ MVCํจํด์ ํฌํจ์ํด
๐ WEB์์ ํญ์ ๊ฐ์ฅ ์ค์ํ ์ค๊ณ
๐ ์ดํ์ค๊ณ์ ๋ฒํผ์ ๋๋ฅด๋ฉด ์ด๋ ํ์ด์ง๋ก๊ฐ๋์ง ์์ผ๋ก ๊ทธ๋ฆฐ๊ฒ ๊ฐ์ ๊ทธ๋ฆผ.
๐ ์ฌ๋ฌ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ด์์ ์๋ ๊ตฌ์กฐ (ํด๋์ค)
๐ ๊ฐ ์ํ์ ๋ฌถ์ด์ ํ๋ฒ์ ์ ๋ฌ => listํ๋ฉด
๐ ํน์ ํ ์ํ์ ๋ณด๋ฅผ ์ ๋ฌ => ์กฐํํ๋ฉด
๐ ์ํ์ ๊ณ ์ ํ ์ ๋ณด = ์๋ณ๋ฐ์ดํฐ
๐ private Integer no; ๋ฅผ ํ๋ ์ด์ ๋ int no์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๊ธฐ๋ณธ๊ฐ์ด 0์ด๋ฏ๋ก ๊ธฐ๋ณธ๊ฐ์ด null์ธ wrapper class๋ฅผ ์ฌ์ฉํด์ผํ๊ณ , ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ํด์ ์ฌ์ฉ๋๋ค.
๐ request ๋ฉ์๋๋ ๋ด์ฅ๊ฐ์ฒด๋ก ์ด๋ฏธ ๋ง๋ค์ด์ ธ์๋ ์ํ๋ผ ๊ตณ์ด ๋ง๋คํ์์์ด ์ฌ์ฉ๊ฐ๋ฅ
request.getMethod()
๐ ์ด ๋ฉ์๋๊ฐ get์ธ์ง post์ธ์ง ์์๋ด๋ ๋ฉ์๋
request.getParamether(name)
๐ name์ด๋ผ๋ ๋ณ์๋ช
์ผ๋ก ์ฐพ์ผ๋ฉด ๊ฐ์ผ๋ก ๋ณ๊ฒฝ๋๋ค
๐ ์์๋ก ๋ค์๋ฉด http://localhost:8080/menu/detail.jsp?no=1
๐ request.getParamether(no) ๋ฅผ ํ๋ฉด return ๊ฐ์ผ๋ก 1์ ๋ฐํํ๋ค.
๐ no๋ฅผ ๊ฑฐ์ณ๊ฐ์ผ ํ๋ ์ด์ ๋ ๋ฉ๋ด๋ชฉ๋ก์ ์๊ฑฐ์น๊ณ ์กฐํํ๋ฉด์ ์ฃผ์๋ก ๋ฐ๋ก ๋ค์ด๊ฐ์์๊ธฐ ๋๋ฌธ์.
๐ POST์์ฒญ์ ์ฒ๋ฆฌํ ํ Redirect๋ฅผ ํตํด GET์์ฒญ์ ๋ณด๋ด๋ ๋ฐฉ์
๐ POST๋ฐฉ์์ ๋ฐ์ดํฐ์ ์ฐ๊ฒฐ์ฑ์ด ์์ด์ ๊ธ์ ์ฌ๋ฆฌ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋กํ๊ฒ ๋ ์ดํ์ ์๋ก๊ณ ์นจ์ ์ฐ๋ฐํ๋ฉด ๊ทธ๋งํผ DB์ ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ๋ฏ๋ก ์ด๋ฌํ ๋ฐฉ๋ฒ์ ๋ง๊ธฐ์ํด Redirect๋ฅผ ํตํด ํ๋ฉด์์ฒด๋ฅผ ์ฎ๊ฒจ๋ฒ๋ฆฐ๋ค. ๊ทธ๋ฌ๋ฏ๋ก post๋ฐฉ์์ ์ํํ๋ฏ๋ก post๊ฐ ๋๋๋ฉด ์ฌ์ฉ์๊ฐ ๋น ์ ธ๋๊ฐ๊ฒ ์ค๊ณํ๋ค.
์์)
```java
<form action = "/cart/addCart.jsp" method="post">
//detail.jsp //๋ฒํผ์ ๋๋ฅด๋ฉด cart- addcart๋ก ์ด๋๋๋๋ฐ
response.sendRedirect("/cart/showCart.jsp");
//addcart.jsp // addcart๋ก ์ด๋์ด ๋๋ค๊ฐ(์ฅ๋ฐ๊ตฌ๋์ ์ํ์ ๋ด์์ต๋๋ค)๋จ๊ณ ๋ฐ๋ก showCart๋ก ์ด๋
```
๐ ์ฝ๋๋ฅผ ๋ถ์ํด๋ณด์
๋ฒํผ์ ๋๋ ์๋ addCart(post) ๋ค๋ ๋ค ๋ฐ๋ก showCart(get)๋ก ๋ฐ๋ก ์ด๋ํ๊ฒ ๋จ
-> post ์ํ์์ db์ ๋๋ฐฐ๊ฐ ๋์ง ์๋๋ก
https://mariadb.org/ โ ๋ค์ด๋ก๋ โ ์ค์นํ์ผ ์ด์ด์ ๋น๋ฐ๋ฒํธ ์ค์ ๋์ฌ๋๊น์ง next โ ํจ์ค์๋12345678 โ root ๋ฒํผ ์ฒดํฌํด์ โ
utf-8 ์ฒดํฌ โ tcp port 13306์ผ๋ก ๋ณ๊ฒฝ โ ํ์ด๋sql์ด๊ธฐ โ ์ ๊ท โ
์ํธ์น๊ณ , ํฌํธ 13306 ํ๊ณ ์ด๊ธฐ โ ์๋ ์ฝ๋ ํ ๋จ์ฉ (์ ํ์คํ)ํด์ฃผ๊ธฐ โ ์ข
๋ฃํ ๋ค์์ผ๊ธฐ โ
์ ๊ท โ ์ฌ์ฉ์์ด๋ฆ : webdbuser, ์ํธ webdbuser, ํฌํธ 13306, ๋ฐ์ดํฐ๋ฒ ์ด์ค webdb โ ์ด๊ธฐ
์ธํ
๋ฆฌ์ ์ด ๋ค์ด๊ฐ์ ์ค๋ฅธ์ชฝ db๋ชจ์ ๋๋ฅด๊ธฐโ ํ๋ฌ์ค ๋๋ฌ์ datasource โ mariadb โ
user์ด๋ฆ: webdbuser, ํจ์ค์๋: webdbuser, ๋ฐ์ดํฐ๋ฒ ์ด์ค: webdb, ํฌํธ๋ฒํธ: 13306,
์๋ ๋ค์ด๋ก๋ ๋๋ผ์ด๋ฒ ๋จ๋ฉด ๋ค์ด๋ก๋ โ test connection โ apply ok
์ดํด๋ฆฝ์ค ์ธ์คํจ๋ฌ์์ eclipse ide for enterprise ์ค์น โ ์ค์น โ ์ด์ด์ โ window โ preferences โ workspace โ utf-8 ํ์ธ โ dynamic web project โ ํ๋ก์ ํธ๋ช ์ ๊ณ , new runtime, tomcat 10.1 โ configuration์ ํ์ฌ ๊น๋ ค์๋ ํฐ์บฃ ์์น (default configuration for apache tomcat v10.1) โ next โ next โ finish โ ์ผ์ชฝ ํด๋ ๋ชฉ๋ก์์ webapp์์ jspํ์ผ ์์ฑ โ run as โ run on server โ apache 10.1 โ next ๋๋ฌ์ ์ด๋ฆ๋ ์๋ ๋ณด๊ณ โ finish
โ main ๋ฐ์ java์์ package ์์ฑ โ ํจํค์ง ์์ servlet ์์ฑ