본문 바로가기
프로그래밍/SpringMVC_1

서블릿(Servlet)

by ILove_NS_MoKa 2024. 1. 8.

서블릿(Servlet) 이 없을경우 위사진을 봤을때  서버 TCP/IP 부터 다 구현일 해야함,

하지만 서블릿(Servle) 이 있을경우 위 초록색 (비즈니스 로직)을 제외한 나머지를 지원을 해준다.

 

 

 

 

 

서블릿(Servlet)

HTTP 요청, 응답 흐름

 

-HTTP 요청시

 WAS 는 Request, Response 객체를 새로 만들어서 서블릿 객체 호출

 개발자는 Request 객체에서 HTTP 요청 정보를 편리하게 꺼내서 사용

 개발자는 Response 객체에 HTTP 응답 정보를 편리하게 입력

 WAS 는 Response 객체에 답겨있는 내용으로 HTTP 응답 정보를 생성

 

 

서블릿

서블릿 컨테이너

 

• 톰캣처럼 서블릿을 지원하는 WAS를 서블릿 컨테이너라고 함
• 서블릿 컨테이너는 서블릿 객체를 생성, 초기화, 호출, 종료하는 생명주기 관리
• 서블릿 객체는 싱글톤으로 관리

     • 고객의 요청이 올 때 마다 계속 객체를 생성하는 것은 비효율
     • 최초 로딩 시점에 서블릿 객체를 미리 만들어두고 재활용
     • 모든 고객 요청은 동일한 서블릿 객체 인스턴스에 접근
     • 공유 변수 사용 주의
     • 서블릿 컨테이너 종료시 함께 종료

• JSP도 서블릿으로 변환 되어서 사용
• 동시 요청을 위한 멀티 쓰레드 처리 지원

 

 

 

서블릿(Servlet)이란 동적 웹 페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술이다. 서블릿은 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해준다.

서블릿은 서버에서 실행되다가 웹 브라우저에서 요청을 하면 해당 기능을 수행한 후 웹 브라우저에 결과를 전송한다.

쉽게 예를들면 로그인 시도를 할 때, 서버가 클라이언트에서 입력되는 아이디와 비밀번호를 확인하고 결과를 응답하는데 이러한 역할을 수행하는 것이 서블릿이다.


▶ 서블릿(Servlet)의 주요 특징
클라이언트의 Request에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트
기존의 정적 웹 프로그램의 문제점을 보완하여 동적인 여러 가지 기능을 제공
JAVA의 스레드를 이용하여 동작
MVC패턴에서 컨트롤러로 이용됨
컨테이너에서 실행
보안 기능을 적용하기 쉬움