-
WAS 안에서 동작하는 서블릿Spring 2023. 7. 25. 22:37
1. 서블릿이란?
Java로 작성된 서버 사이드 프로그램
HTTP 요청을 처리하고, HTTP 응답을 생성하는 역할
WAS 안에서 사용됨
사실 우리가 HttpRequest를 직접 분석하고 파싱해서 써야한다.
HttpResponse도 직접 생성하고 데이터 집어넣어서 client한테 보내줘야한다.
HTTP 요청 메시지를 개발자가 직접 파싱해서 사용해도 되지만, 매우 불편할 것이다.
서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다.
그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다.
서블릿이 HTTP Request를 파싱하는 것은 다 알아서 해주니 우리는 그냥 서블릿 내의 비즈니스 로직만 작성해주면 됨.
2. 서블릿 동작과정
클라이언트가 웹 서버에 요청하면 웹 서버는 그 요청을 Tomcat 과 같은 WAS에 위임한다.
그러면 WAS는 각 요청에 해당하는 Servlet을 실행한다.
그리고 서블릿은 요청에 대한 기능을 수행한 후 결과를 반환하여 클라이언트에 전송한다.
1. 클라이언트 요청 2. HttpServletRequest, HttpServletResponse 객체 생성 3. 매핑할 서블릿 객체 탐색 (어느 서블릿에 대해 요청한 것인지 찾아봄) 4. 해당하는 서블릿에서 doPost() doGet() 같은 것 호출 5. 동적 페이지 생성 후 ServletResponse 객체에 응답 전송 6. HttpServletRequest, HttpServletResponse 객체 소멸
각 요청에 대해서는 프로세스가 아닌 쓰레드가 생성되어 처리함.
쓰레드 풀은 개수를 지정하여, 일정 이상 요청이 들어오면 대기하도록 처리됨.
3. 서블릿 생명주기
1. init() method를 호출하여 해당 Servlet 클래스의 새 객체를 생성만약 사용할 서블릿이 이미 생성되어 있으면 그대로 사용
2. Servlet Container에 쓰레드 하나를 생성하고 해당 서블릿이 service() method를 실행함.
doGet() doPost() 같은 메서드 실행.
3. response까지 모두 처리했으면 destroy() method를 호출하여 HttpServletRequest HttpServletResponse 객체를 소멸함.
'Spring' 카테고리의 다른 글
Spring MVC 동작방식 (1) 2023.10.06 Spring Container (0) 2023.10.06 Spring Boot Application 아키텍처 (0) 2023.10.06 Web Server와 Web Application Server(WAS) (0) 2023.10.05 스프링 vs 스프링 부트 vs 스프링 프레임워크 (0) 2023.07.05