Java Servlet[1]

BaeSeBinยท2024๋…„ 12์›” 24์ผ

Java Servlet

๋ชฉ๋ก ๋ณด๊ธฐ
1/7

๐Ÿ˜Š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์—์„œ ์ •์˜๋œ ๋ฉ”์„œ๋“œ๋“ค

์˜ค๋ฒ„๋ผ์ด๋“œํ•ด์„œ ์‚ฌ์šฉํ•˜์ž

0๊ฐœ์˜ ๋Œ“๊ธ€