서블릿(Servlet)

서희찬·2023년 10월 23일
0

웹프로그래밍

목록 보기
4/30
post-custom-banner

🫨 서블릿(Servlet)?

  • 자바 플랫폼에서 컴포넌트 기반의 서버 측 웹 어플리케이션 개발 기술
  • 서블릿 컨테이너에 의해 생성, 호출, 소멸

서블릿 장점

  • 쓰레드 기반으로 웹 어플리케이션 운영에 효율적임
    -자바 기반으로 자바 API 모두 사용 가능
  • 운영체제나 하드웨어에 독립적
  • 웹 어플리케이션에서 효율적인 자료 공유 방법 제공

웹 어플리케이션 개발 시 이점?

  • 컨텐츠와 비지니스 로직 분리 가능
  • 컨트롤러와 뷰 역할 분담
  • 유지보수 수월
  • 기능의 확장 용이 등등..

🙌 서블릿 컨테이너(Servlet Container)

  • HTTP 요청에 의한 서블릿 실행 및 생명주기 관리하는 프로그램
    • 서블릿, 자바 서버 페이지 파일, 서버 사이드 코드가 포함된 다른 타입의 파일들에 대한 요청 처리
  • 자바 가상 머신을 포함한 서블릿 운영 환경 제공
    • 서블릿 객체 생성
    • 서블릿 로드 및 언로드
    • 요청과 응답 객체 생성 및 관리
    • 다른 서블릿 관리 작업 수행
  • 자체 웹 서버 기능도 있으나 웹 서버와 분리하기도 함
  • Apache Tomcat, Resin, Wildfly(Jboss), JEUS, WebLogic 등

서블릿 컨테이너 동작 흐름

요청의 흐름

응답의 흐름

요청 및 응답 자세히 보기


1. 사용자가 서블릿에 대한 링크 클릭

링크 클릭시 Request는 Cotainer로 들어오게 된다.

2. 컨테이너로 들어온 요청 처리

컨테이너로 들어온 요청이 서블릿 이라는 것을 간파하곤 2개의 객체 생성
1. HttpServletResponse
2. HttpServletRequest

3. URL 분석 후 어떤 서블릿 요청인지 알아내기

URL을 분석하여 어떤 서블릿에 대한 요청인지 알아내고 해당 서블릿 쓰레드를 생성하여 Request/Response Object를 인자로 넘긴다!

4. Servlet Service() method 호출


컨테이너는 서블릿 서비스 메서드를 호출하고 요청에 지정한 방식에 따라 Get인지 Post인지 결정함

5. Response 보내기

doGet()이라고 가정했을때, 동적인 페이지를 생성한 후, 이를 Response Object에 실어서 보낸다
컨테이너는 Response Object에 대한 참조를 여전히 가지고 있다.

6. 쓰레드 종료


위 스레드 작업이 끝나면 컨테이너는 Response 객체를 Http Response로 전환하여 클라이언트로 보냄
-> 이제 마지막으로 Request, Response객체 소멸!

이와 같은 방식으로 서블릿 컨테이너가 작동한다.

profile
부족한 실력을 엉덩이 힘으로 채워나가는 개발자 서희찬입니다 :)
post-custom-banner

0개의 댓글