서블릿이란?
서블릿이란 TCP/IP 대기, 소켓 연결, HTTP 요청 메시지 파싱, 메시지 바디 내용 파싱, 저장 프로세스 실행 등 비즈니스 로직 실행을 제외한 여러가지 행위들을 처리할 수 있도록 도와주는 것이다.
서블릿의 특징
서블릿은 여러가지 특징을 지니는데 위의 사진을 예시로 들면, rulPatterns의 URL이 호출되면(/hello) 서블릿 코드가 실행되게 된다.
또한 HTTP 요청 정보를 사용하는 HttpServletRequest와 HTTP 응답 정보를 제공하는 HttpServletResponse가 있다.
HTTP 요청이 오면 WAS는 Request, Response 객체를 새로 만들어 서블릿 객체를 호출하며 개발자는 Request 객체나 Response 객체를 이용하여 편리하게 요청 정보나 응답 정보를 사용할 수 있게 된다.
그러면 WAS는 Response 객체에 담겨있는 내용으로 HTTP 응답 정보를 생성하게 된다.
서블릿 컨테이너
서블릿을 지원하는 WAS에는 서블릿 컨테이너라는 것이 존재한다.
서블릿 컨테이너는 서블릿 객체를 자동으로 생성, 초기화, 호출, 종료하는 생명주기를 관리한다.
또한 서블릿 객체는 싱글톤으로 관리되는데 이것은 고객의 요청마다 계속 객체를 생성하는 것이 비효율 적이기 때문이다.
따라서 최초 로딩 시점에 서블릿 객체를 미리 만들어두고 재활용하며 모든 고객 요청은 동일한 서블릿 객체 인스턴스에 접근하기 때문에 공유 변수 사용에 주의해야 한다.
JSP도 서블릿으로 변환되어 사용되며, 동시 요청을 위한 멀티 쓰레드 처리를 지원하는 것이 특징이다.
'Spring > Spring MVC' 카테고리의 다른 글
Spring MVC - 멀티 쓰레드 (0) | 2024.05.19 |
---|---|
Spring MVC - Web Server와 Web Application Server (0) | 2024.05.11 |