[Servlet] 서블릿 기본 개념

2024. 9. 5. 02:05·Back-End/Back-End

[작성일: 2023. 04. 01]

 

기본 개념

서버(server)

  • 사용자의 요청에 맞는 서비스를 제공하는 것
  • 요청(Request)  <> 응답(Response)

 

 

 

httpd

  • 클라이언트 요청을 인식하는 프로그램
  • 요청을 받아서 웹 서버에 전달함.
  • 스레드 스케쥴링

 

 

 

web

  • 페이지의 요청(Request)과 응답(Response)이 일어나는 장소
  • 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 공간

 

 

 

 

web server(http)

  • 아파치(Apache)
  • 사용자의 요청이 정적인지, 동적인지 판단함.
    • 정적이면 준비되어 있는 리소스(html 등)를 그대로 돌려줌.
    • 동적이면 웹 컨테이너에 요청을 보냄.

 

 

 

웹 컨테이너(서블릿 컨테이너)

  • 사용자의 동적 데이터를 servlet, jsp로 연산하거나 제어하며 DB를 접속 등을 통해 정제된 데이터(정적 데이터)로 가공 후 응답함.

 

 

 

WAS(Web Application Server)

  • 동적 데이터를 처리할 서블릿을 메모리에 할당
  • 서블릿에 대한 스레드 생성
  • 요청과 응답 객체를 생성 후 서블릿에 전달

 

 

 

 

 

기본 용어

Context root

  • 메타 정보와 웹 정보를 관리하는 META-INF와 WEB-INF 파일이 자동으로 생성
  • JSP 파일은 이 하위에 저장되어야 경로를 찾을 수 있음.

 

 

 

Content Directory

  • 프로젝트명 의미
  • url의 호스트, 포트 뒤에 존재함.
    • localhost:1234/@@@/@@@

 

 

 

 

 

Tomcat의 Servlet

서블릿 인터페이스

  • 서블릿은 웹 서버 내에서 동작하는 작은 자바 프로그램
  • 서블릿은 웹 클라이언트에게 요청(request)을 받고 응답(response)을 해 줌.
  • GenericServlet 또는 HttpServlet을 상속받아서 인터페이스를 구현해야 함.

 

 

 

서블릿 라이프사이클

  • 서블릿은 생성 이후 init() 메서드로 초기화
  • 클라이언트가 서비스(service())로 보낸 요청을 처리함.
  • 서블릿 사용이 중지되면 destroy()를 이용해서 제거함.

 

 

 

init()

  • 어느 서블릿이 어느 서비스에 배치되었는가를 나타내기 위해 서블릿 컨테이너로부터 호출되는 메서드
  • 서블릿이 요청을 받기 전, 반드시 설정해야 함.
  • 오류 유형 ServletException   웹 서버의 설정 시간 내에 반환되지 않는 경우 발생

 

 

 

service(ServletRequest req, ServletResponse res)

  • 서블릿이 요청에 응답하도록 서블릿 컨테이너에서 호출되는 메서드 
  • 서블릿의 init()가 성공해야 실행 가능함.
  • 서블릿 객체가 생성되고 메모리에 존재하여 동일한 서블릿에 대한 요청이 오면 init()를 수행하지 않고, 메모리에 남겨둔 것을 재사용함.
    • 처음 실행할 때는 약간 느린 감이 있으나 처음 이후에는 상대적으로 빠름.

 

 

 

 

 

 

 

 

 

 


🐣 해당 게시글은 입문 개발자가 요약/정리한 글이므로 틀린 내용이나 오타가 있을 수 있습니다.

 

저작자표시 비영리 변경금지 (새창열림)
'Back-End/Back-End' 카테고리의 다른 글
  • [JSP] 쿠키와 세션
  • [JSP] 자바빈즈
  • [JSP] JSP란?
  • [Servlet] CGI와 Servlet
뚜비
뚜비
1년차 백엔드&iOS 개발자의 감자 탈출 블로그 🥔🥔
  • 뚜비
    뚜비의 개발로그
    뚜비
  • 전체
    오늘
    어제
  • 글쓰기     관리
    • Devlog
      • Back-End
        • Java
        • Spring
        • JPA
        • HTTP
        • Security
        • Back-End
        • Front-End
      • 알고리즘
      • iOS
        • Swift
      • Database
      • Tips
        • Git & GitHub
        • A to Z
      • 프로젝트
      • 생각정리
  • 태그

    spring
    Swift
    sql
    자바
    프로그래머스
    알고리즘
    Database
    MVC
    생성자
    javascript
    JPA
    의존성주입
    Spring Security
    html
    스프링
    최주호
    김영한
    자바스크립트
    데이터베이스
    변수
    성능최적화
    백준
    jsp
    Security
    Java
    객체
    게시판만들기
    다형성
    DB
    HTTP
  • hELLO· Designed By정상우.v4.10.0
뚜비
[Servlet] 서블릿 기본 개념
상단으로

티스토리툴바