카테고리 없음
스프링 MVC - 서블릿
진이최고다
2023. 3. 22. 12:35
서블릿
서블릿은 웹 어플리케이션에서 동작하는 자바 클래스로, HTTP 요청과 응답을 처리하는 기능을 담당한다.
서블릿은 자바 언어로 작성되며, javax.servlet 패키지에서 제공된다. 서블릿을 구현하려면 javax.servlet.Servlet 인터페이스를 구현하거나, javax.servlet.http.HttpServlet 클래스를 상속받아야 한다. 이를 통해 서블릿 컨테이너에서 서블릿 객체를 생성하고, HTTP 요청에 대한 처리를 수행할 수 있다.
서블릿을 사용하면 개발자는 HTTP 스펙을 매우 편리하게 사용할 수 있다.
서블릿 HTTP 요청, 응답 흐름
- HTTP 요청시, WAS는 Request, Response 객체를 새로 만들어서 서블릿 객체를 호출한다.
- 서블릿은 클라이언트의 요청(Request) 정보를 처리하고, 새로운 응답(Response) 정보를 생성한다.
- 개발자는 Request 객체에서 HTTP 요청 정보를 편리하게 꺼내서 사용할 수 있다.
- 개발자는 Response 객체에 HTTP 응답 정보를 편리하게 입력할 수 있다.
- WAS는 Response 객체에 담겨있는 내용으로 HTTP 응답 정보를 생성하여 클라이언트에게 전달한다.
서블릿 컨테이너
서블릿 컨테이너는 WAS에서 서블릿을 지원하기 위해 사용되는 도구이다.
서블릿 객체의 생성, 초기화, 호출, 종료 등의 생명주기를 관리하며, 서블릿 객체는 싱글톤으로 관리되어 최초 로딩 시점에 서블릿 컨테이너에 의해 미리 만들어져 재활용된다. 이렇게 서블릿 객체를 미리 생성해 두면 매번 요청이 올 때마다 객체를 생성하는 것보다 효율적이다.
서블릿 컨테이너는 🔗*동시 요청을 위한 멀티 쓰레드 처리를 지원한다. 즉, 여러 고객이 동시에 요청을 보내면 서블릿 컨테이너는 새로운 쓰레드를 생성해 해당 요청을 처리한다. 이 때, 모든 고객 요청은 동일한 서블릿 객체 인스턴스에 접근이 가능하다. 그러므로 서블릿 객체 내부에서 공유 변수를 사용하는 경우에는 주의해야 한다.
서블릿 객체는 서블릿 컨테이너는 종료될 때 함께 종료된다. JSP(Java Server Pages)도 서블릿으로 변환되어 사용된다.