Note

서블릿이란?(Servlet, Servlet Container, JSP)

u0hun 2021. 10. 4. 17:05

https://mangkyu.tistory.com/14

 

[JSP] 서블릿(Servlet)이란?

1. Servlet(서블릿) 서블릿을 한 줄로 정의하자면 아래와 같습니다.  클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 간단히 말해

mangkyu.tistory.com

출처 : 망나니개발자님의 블로그


Servlet

자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말한다.

웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다.

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

 

_JSPark님의 블로그에서의 Servlet (쉬운 이해를 위해 인용)

  • 클라이언트 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그램
  • 클라이언트의 HTTP 요청에 대해 특정 기능을 수행, HTML문서를 생성등의 응답을 하는 인터넷 서버 프로그램

    출처: https://jusungpark.tistory.com/15 [정리정리정리]

Servlet 동작 방식

  1. 사용자(클라이언트)가 URL을 입력하면 HTTP Request가 Servlet Container로 전송한다.
  2. 요청을 전송받은 Servlet Container는 HttpSetvletRequest, HttpServletResponse 객체를 생성한다.
  3. web.xml을 기반으로 사용자가 요청한 URL이 어느 서블릿에 대한 요청인지 찾는다.
  4. 해당 서블릿에서 service메소드를 호출한 후 클라이언트의 GET, POST 여부에 따라 doGet() 또는 doPost()를 호출한다.
  5. doGet() or doPost() 메소드는 동적 페이지를 생성한 후 HttpServletResponse 객체에 응답을 보낸다.
  6. 응답이 끝나면 HttpServletRequest, HttpServletResponse 두 객체를 소멸시킨다.

Servlet Container

  • 서블릿을 관리해주는 컨테이너.
  • 클라이언트의 요청(Request)을 받고 응답(Response)할 수 있게, 웹 서버와 소켓으로 통신하며 대표적으로 톰캣(Tomcat)이 있다. 
  • 톰캣은 웹 서버와 통신하여 JSP(Java Server Page)와 Servlet이 작동하는 환경을 제공해준다.

 

Servlet Container의 역할

  • 웹 서버와의 통신 지원
  • 서블릿 생명주기(Life Cycle) 관리
  • 멀티 쓰레드 지원 및 관리
  • 선언적인 보안 관리

JSP(Java Server Page)

  • Java 코드가 들어가 있는 HTML 코드.
  • HTML 코드에 JAVA 코드를 넣어 동적 웹 페이지를 생성하는 웹 애플리케이션 도구이다.

 

Servlet vs JSP

  • JSP는 HTML 문서 안에 Java 코드를 포함하고 있다.
  • 서블릿은 자바 코드 안에 HTML을 포함하고 있다.