Java

Java의 Servlet

정의

Java에서 HTTP 요청을 처리하는 프로그램
응답을 가공하여 동적인 페이지를 제공

목적 및 특징

목적

HTTP 요청을 읽고 응답을 만들어주는 역할

특징

  • 클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트
  • html을 사용하여 요청에 응답한다.
  • Java Thread를 이용하여 동작한다.
  • MVC 패턴에서 Controller로 이용된다.
  • HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속받는다.
  • UDP보다 처리 속도가 느리다.
  • HTML 변경 시 Servlet을 재컴파일해야 하는 단점이 있다.
Servlet 동작 방식
Servlet 생명주기
Servlet Container

장점

  • HTTP 요청, 응답 / 자원 / 멀티쓰레드 신경쓰지 않고
    • 개발자는 비즈니스 로직에만 집중

면접 질문

  • Servlet이 필요한 이유
    • HTTP 요청을 읽고 응답을 만들어주는 역할
    • 소켓 연결
    • 메시지 파싱
  • Servlet의 동작방식을 개략적으로 설명
    • 사용자가 URL을 입력하면 HTTP Request가 Servlet Container로 전송
    • 요청을 전송받은 Servlet Container 는 HttpRequest, HttpResponse 객체를 생성
    • 사용자가 요청한 URL이 어느 서블릿에 대한 요청인지 찾는다.
    • service 메서드를 호출한 후 클라이언트의 GET, POST 여부에 따라 doGet(), doPost()를 호출
    • 동적페이지를 생성한 후, HttpServletResponse 객체에 응답을 보낸다.
    • 응답 후, HttpServletRequest, HttpServletResponse 객체를 소멸