๐Java Server Side Programming
: ์๋ฐ ์ด์ฉํด์ ์น ์ดํ๋ฆฌ์ผ์ด์
์ ๋ฐฑ์๋๋ฅผ ๊ฐ๋ฐํ๋ ๊ฒ
๐Java EE(Enterprise Edition)
: Java ๊ธฐ๋ฐ์ ๋๊ท๋ชจ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ๊ธฐ ์ํ ํ๋ซํผ์, ํ์ฌ๋ 'Jakarta EE'๋ก ๋ช
์นญ์ด ๋ณ๊ฒฝ๋์์ผ๋ฉฐ, ๋ค์ํ specification์ผ๋ก ๊ตฌ์ฑ๋์ด ์์.
์ฐ๋ฆฌ๊ฐ ํํ ์๊ณ ์๋ JSP(Java Server Pages), Servlet, JPA(Java Persistence API), CDI(Context and Dependency Injection) ๋ฑ์ด ์กด์ฌํจ.
๐Servlet ๋์ ๊ณผ์
Servlet์ ์คํ ํ๊ธฐ ์ํด์๋ Tomcat(WAS)์ ๊ฐ์ด Servlet Container ํน์ Servlet Engine ์ญํ ์ ํ๋ ํ๊ฒฝ์ด ํ์ํจ.

https://mossgreen.github.io/Servlet-Containers-and-Spring-Framework/
์ผ๋ฐ Java ํ๋ก๊ทธ๋จ๊ณผ ๋น๊ตํด์ ๋ค๋ฅธ ์ :
๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์คํํ๋ ์ฃผ์ฒด๊ฐ ์๋ธ๋ฆฟ ์ปจํ
์ด๋์์ ํ๊ฒ ๋จ
์๋ธ๋ฆฟ/JSP์ ์ฝ๋ ๊ฐ๋ฐ์ ์๋ฐ API์ ์๋ธ๋ฆฟ API๋ ๊ฐ์ด ์ฌ์ฉํด์ผํจ
๐HTTPServlet
HttpServlet์ ํด๋์คํ์ผ์ด๊ณ ๋ค์๊ณผ ๊ฐ์ ์์ ๊ตฌ์กฐ๋ฅผ ๊ฐ๊ณ ์์.

https://mycool0905.github.io/web/java/servlet/jsp/2020/07/03/servlet.html
์์์ GenericServlet์ ์ถ์ ํด๋์ค์
GenericServlet์ HTTP์ ํนํ๋์ง ์์ ํ๋กํ ์ฝ์ฒ๋ฆฌ๊น์ง ์ ์ํ๊ณ ์์
๐HttpServlet์ ๋ผ์ดํ ์ฌ์ดํด
1. ๋ธ๋ผ์ฐ์ (client)๊ฐ ํน์ URL๋ก ์์ฒญ์ ๋ณด๋
2. WAS(ํฐ์บฃ)์ด URL ํจํด๊ณผ ์ด๋
ธํ
์ด์
๋ฑ์ ์ฐธ๊ณ ํ์ฌ ์์ฒญ์ ์ฐธ๊ณ ํ ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ฅผ ํ์ธํจ.
2.1 ์๋ธ๋ฆฟ ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋ฉด ์ฌ์ฉํจ
2.2 ์๋ธ๋ฆฟ ๊ฐ์ฒด๊ฐ ์์ผ๋ฉด
2.2.1 ์๋ธ๋ฆฟ ํด๋์ค๋ฅผ ๋ก๋ํจ
2.2.2 ์ธ์คํด์ค๋ฅผ ์์ฑ(์ฑ๊ธํค ๋ฐฉ์)ํ๊ณ ์ด๊ธฐํ ๋ฉ์๋(init())์ ํธ์ถํจ
2.2.3 ์์ฒญ ์ฒ๋ฆฌ(service()) ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์์ฒญ์ ์ฒ๋ฆฌํจ.
2.2.4 ์ข
๋ฃ(destroy() ๋ฉ์๋)
์ค์ํ ์ฌ์ค
1. ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ ๊ฒฝ๋ก์ ๋ง๊ฒ ํ๋๋ง ๋ง๋ค์ด์ง
2. ๋งค๋ฒ ํธ์ถ ์์๋ ์๋์ผ๋ก do
[์ค์ต] ์ค์ ๋ก ์๋ธ๋ฆฟ ๋ผ์ดํ ์ฌ์ดํด ํ์ธํด๋ณด๊ธฐ
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "sampleServlet", urlPatterns = "/sample")
public class SampleServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doGet...." + this);
}
@Override
public void destroy() {
System.out.println("destory........................");
}
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("init(ServletConfig)..............");
}
}

๋์ผํ ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํ๊ฒ ๋ฐ๋ณตํด์ ๋๋ ์ ๋ ์ค์ ๋ก ํ๋์ ๊ฐ์ฒด๋ก ์ฒ๋ฆฌ๋๋ค๋ ๊ฒ์ ์ ์ ์์(์ถ๋ ฅ ํด์์ฝ๋๊ฐ ๊ฐ์์)
๊ฒฐ๋ก : init(), destroy()๋ ํ ๋ฒ ์ฉ๋ง ํธ์ถ | Get() ๋ฑ์ ๋์ผํ ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ๋ฒ ํธ์ถ๋จ.
HttpServlet์์ ์ ์๋ ๋ฉ์๋๋ค

์ค๋ฒ๋ผ์ด๋ํด์ ์ฌ์ฉํ์