작성일자 2022.08.05
서블릿(Servlet)이란?
자바 서블릿은 웹 페이지를 동적으로 생성하는 서버 측 프로그램 또는 그 사양을 말하며 흔히 서블릿이라 한다.
Servlet은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다.
기존의 서버는 정적인 자료(HTML, 사진, 글) 만을 주고받았다.
하지만 다양한 기능이 요구되면서 정적인 자료뿐만 아니라 사용자 요구에 맞춘 동적인 페이지들을 만들 필요가 생겼다.
이를 위해 만들어진 것이 바로 서블릿이다!
즉, 서블릿은 클라이언트 요청에 맞춰 동적인 결과를 만들어 주는 자바 웹 프로그래밍 기술이다.
이러한 서블릿은 WAS(Web Application Server)의 서블릿 컨테이너 안에서 동작하게 된다.
서블릿(servlet)의 특징
- 클라이언트의 요청에 동적으로 응답하는 웹 어플리케이션 컴포넌트
- HTML을 사용하여 응답
- JAVA의 Thread를 이용
- MVC 패턴의 Controller 역할
- HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속받는다
- UDP보다 처리 속도가 느리다
- HTML 변경시에 서블릿을 재 컴파일 해야하는 단점이 존재
- WAS내의 서블릿 컨테이너에서 동작
- 요청(Reques)를 받으면 요청에 맞는 로직을 실행하고 클라이언트에게 HTTP 형식으로 응답(Response)한다.
서블릿 컨테이너란?
서블릿을 담고 관리해주는 컨테이너가 서블릿 컨테이너이다.
서블릿 컨테이너는 구현되어 있는 서블릿 클래스의 규칙에 맞게 서블릿을 관리하며
클라이언트의 요청을 받으면 HttpServletRequest와 HttpServletResponse 객체를 생성하여 post, get여부에 따라 동적인 페이지를 생성하여 응답한다.
서블릿 컨테이너의 기능
- 서블릿 생명주기 관리
- 서블릿 컨테이너는 서블릿의 탄생과 죽음을 관리한다.
- 서블릿 클래스를 로딩하여 인스턴스화 -> 초기화 메소드 호출 -> 요청이 들어오면 서블릿 메소드를 찾아서 동작
- 또한 서블릿의 생명이 다하면 가비지 컬렉션(Grabage Collection)을 통해 메모리에서 제거
- 통신지원
- 서블릿 컨테이너는 웹 서버와 소켓을 만들어서 클라이언트의 요청을 받고 응답할 수 있는 통신을 지원한다.
- 통신을 하기 위한 listen, accept 등의 과정을 API로 제공하여 복잡한 과정을 생략해주기에 개발자가 비즈니스 로직 개발에만 집중할 수 있게 도와준다.
- 멀티쓰레드 지원 및 관리
- 서블릿 컨테이너는 클라이언트의 요청을 받을 때마다 새로운 자바 스레드를 생성한다.
- 따라서 동시에 여러 요청이 들어와도 멀티쓰레딩 환경에서 동시다발적 작업을 관리한다.
- 선언적인 보안 관리
- 서블릿 컨테이너는 보안 관련 기능을 제공하므로 개발자는 서블릿에 보안 관련 메소드를 구현하지 않아도 된다.
'Web' 카테고리의 다른 글
Query DSL을 통한 커서기반 페이징 (1) | 2024.03.07 |
---|---|
[Paging] 페이지네이션을 알고 사용하자 (0) | 2023.10.02 |
[부스트코스] 웹 프로그래밍(풀스택) - Day 1 (0) | 2022.04.06 |
생활코딩 JavaScript 정리 (0) | 2022.01.24 |
생활코딩 css 정리(Day 2) (0) | 2022.01.15 |