์๋ธ๋ฆฟ (Servlet)
แ์๋ธ๋ฆฟ์ ๋ฉ์ธ์ด ์์ง๋ง, ์๋ธ๋ฆฟ ์ปจํ ์ด๋์ ์ํด ์คํ๋๊ณ ๊ด๋ฆฌ๋๋ค. ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ก ํฐ์บฃ์ ์ฌ์ฉ ์ค
แ์๋ธ๋ฆฟ์ ๋จ์ ์ java ์ฝ๋ ์์ html ์ฝ๋๊ฐ ๋ค์ด์์ด ํจ์จ์ฑ์ด ๋จ์ด์ง๋ค๋ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ๋์์ธ ์์ ์ ์๋ธ๋ฆฟ์ผ๋ก ํ์ง ์๋๋ค.
แ์ ๋ค๋ฆญ ์๋ธ๋ฆฟ์ ์์ ๋ฐ์์ ๋ง๋๋ ๊ฒ์ด ์๋ HTTP ์๋ธ๋ฆฟ์ ์์ ๋ฐ๋ ๊ฒ์ด ํจ์ฌ ์ฝ๋ฉํ๊ธฐ ์ฌ์ฐ๋ฏ๋ก HTPP ์๋ธ๋ฆฟ์ ์์ ๋ฐ๋๋ค.
แ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ๋ฉด ์์ฒญ๋ ๊ธฐ๋ฅ์ ๋ฐ๊ณ ์ฌ์ฉ์์๊ฒ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํด์ค๋ค.
แ๊ฐ์ฒด ์์ฑ๋ถํฐ ์๋ฉธ๊น์ง ๋ผ์ดํ ์ฌ์ดํด์ ๊ด๋ฆฌํ๋ค.
แ๋ค์ค ์ค๋ ๋๋ฅผ ์ง์ํ๋ค.
์๋ธ๋ฆฟ์ life cycle
init()
แํด๋ผ์ด์ธํธ๊ฐ ๋ช ๋ช ์ด ๋ค์ด์ค๋์ง ์ด๋ ํ ๊ฒฝ์ฐ์๋ผ๋ ์ต์ด๋ก ํ๋ฒ ์ํ๋๋ค.
แ๊ฒฐ๊ณผ์ ์ผ๋ก๋ ๋ ๋ฒ ๋ค์๋ ์คํ๋์ง ์๋๋ค.
service()
แํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๊ณ ์์ฒญ์ ๋ฐ๋ฅธ ๊ฒฐ๋กธ๋ฅผ ์๋ตํ๋ ๋ฉ์๋๋ก ํด๋ผ์ด์ธํธ์ ์์ฒญ ํ ๋๋ง๋ค ์คํ๋๋ค.
แ์์ฒญ๊ณผ ์๋ต์ ์ฒ๋ฆฌํ๋ค.
destory()
แ์๋ฒ๊ฐ ์ข ๋ฃ๋๋ ์์ ์ ์ฌ์ฉํ ๋ฆฌ์์ค๋ฅผ ๋ซ๋ ๋ฑ์ ์ญํ ์ ์ํํจ
แ์๋ฒ๊ฐ ์ฃฝ์ ๋ ๋จ ํ ๋ฒ ์คํ๋๋ค.
แ์ ๋ค๋ฆญ ์๋ธ๋ฆฟ(Generic Servlet)์ ์ถ์ ํด๋์ค๋ผ์ ๋ฐ๋์ ์ฌ์ ์ ํด์ผ ํ๋ค.
แ์ ๋ค๋ฆญ ์๋ธ๋ฆฟ์ ๊ธฐ๋ฅ์ด ๋ถ์กฑํ์ฌ http ์๋ธ๋ฆฟ ์ด์ฉํ์! ( http ์๋ธ๋ฆฟ์ ์๋ฒ์ง๋ ์ ๋ค๋ฆญ ์๋ธ๋ฆฟ )
์๋ธ๋ฆฟ์์์ ๋ฃจํธ :http://localhost:9090/study2
html์์์ ๋ฃจํธ :http://localhost:9090
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ๊ฒ์ ๋ฐ์ ๋๋ ์ ๋ ฅ ์คํธ๋ฆผ (req)
ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ๊ฒ์ ๋ฐ์ ๋๋ ์ถ๋ ฅ ์คํธ๋ฆผ (res)
ํ๋ผ๋ฏธํฐ
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒํํ ๋ณด๋ด๋ ์ ๋ณด
GET ๋ฐฉ์
แ ๊ธฐ๋ณธ ์์ฒญ ๋ฐฉ์์ผ๋ก ์ฃผ์ ์ค์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ฌ
แ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ดํธ์ ์ ์ํ๋ ๊ฒ์ GET ๋ฐฉ์์ด๋ค.
POST ๋ฐฉ์
แ<from> ํ๊ทธ์์ method๋ฅผ post๋ก ์ค์ ํด์ ์์ฒญํ๋ค.
แ <form method = "post"></form>์ ํตํด ์์ฒญ
body์ ์ ๋ณด๋ฅผ ์ค์ด์ ๋ณด๋
https://news.naver.com/main/main.naver?mode=LSD&mid=shm&sid1=105
? ๋ค์ ์๋ ์ ๋ณด๊ฐ ํ๋ผ๋ฏธํฐ
IT ๋ผ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ด๊ณ ์์
๋ค๋ฅธ ๋ฐฉ๋ฒ๋ ์์ง๋ง ์ผ๋จ ๋ ๊ฐ์ง ๊ธฐ์ตํด ๋ ๊ฒ
req.setCharacterEncoding("utf-8");
POST ๋ฐฉ์์ ์ฌ์ฉํ ๋๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ์์ฒญํ ๋ฌธ์์ ์ธ์ฝ๋ฉ ์ค์ ํด์ผ ํ๋ค.
์ค์ ํ์ง ์์ผ๋ฉด post ๋ฐฉ์์์๋ ํ๊ธ์ด ๊นจ์ง๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
Servlet ๋ง๋๋ ๋ฐฉ๋ฒ
1. HTTP ์์ ๋ฐ๋๋ค.
2. doGet๊ณผ doPost๋ฅผ ์ฌ์ ์ํ๋ค.
doGet() : get ๋ฐฉ์์ผ๋ก ์์ฒญํ์ ๋
doPost():
3. ์๋ธ๋ฆฟ๊ณผ ์ฃผ์๋ฅผ ๋งคํํ๋ค. (web.xml)
แ์๋ธ๋ฆฟ๊ณผ ์ฃผ์๋ฅผ ๋งคํํ ๋ ์ฃผ์ํด์ผ ํ ์ ์ ํ ํ๋ก์ ํธ ๋ด์ ๋์ผํ url-pattern์ ์ฌ์ฉํด์๋ ์ ๋๋ค.
แ๋ค๋ฅธ ํจํค์ง์ธ ๊ฒฝ์ฐ๋ผ๋ ์ ๋ ๋ถ๊ฐํ๋ค.
แ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ค.
Caused by: java.lang.IllegalArgumentException: ์ด๋ฆ์ด [helloServlet]๊ณผ [ch02.user.UserServlet]์ธ ๋ ์๋ธ๋ฆฟ๋ค ๋ชจ๋ url-pattern [/hello]์ ๋งคํ๋์ด ์๋๋ฐ, ์ด๋ ํ์ฉ๋์ง ์์ต๋๋ค.
์๋ธ๋ฆฟ๊ณผ ์ฃผ์๋ฅผ ๋งคํํ๋ ๋ฐฉ๋ฒ
1) web.xml ์์ ์๋ธ๋ฆฟ ํ๊ฒฝ ์ค์
์ด๋ฆ๊ณผ ํด๋์ค๋ฅผ ์ค์ ํ๋ค.
์ด๋ฆ๊ณผ url ํจํด์ ์ค์ ํ๋ค.
2) ํด๋์ค ์์์ ๋งคํํ๋ ๋ฐฉ๋ฒ
@WebServlet("/user")
'๐ปProgramming > JSP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JSP] ํํ์ธ์ด EL - EL ์ฐ์ฐ์/EL ๋ด์ฅ๊ฐ์ฒด (1) | 2022.10.04 |
---|---|
[JSP] ํ๋ผ๋ฏธํฐ๋ฅผ ๋๊ฒจ ๋ฐ๋ ๋ฐฉ๋ฒ - getParameter()/getParameterValues()/getParameterMap (0) | 2022.09.28 |
GET๊ณผ POST ์ฐจ์ด์ (0) | 2022.09.28 |
[JSP] 04. Request Parameter - GET/POST (0) | 2022.09.27 |
[JSP] 03. JSP ๊ธฐ๋ณธ๋ฌธ๋ฒ - ์ง์์ด/์คํฌ๋ฆฝํ /ํํ์ (0) | 2022.09.27 |