스프링 강의(인프런)

서블릿(Servlet)의 개념과 흐름

indeep 2023. 6. 17. 10:53

서블릿

동적 웹페이지(Dynamic Web Page)를 만들 때 사용되는 자바 기반의 웹 어플리케이션 프로그래밍 기술이다.

클라이언트가 서버로 요청을 보낼 때 다양한 요청과 응답을 주고 받는데, 이 요청과 응답에는 규칙이 존재한다.

이걸 개발자가 일일이 처리하려면 굉장히 귀찮기 마련인데, 서블릿은 이러한 웹 요청과 응답의 흐름을 간단하게 메서드 호출만으로 체계적으로 다룰 수 있게 해주는 기술이다.

 

 

우선 톰캣 내장서버를 활용하기 위해 스프링 부트로 설명하겠습니다.

스프링부트가 내장 톰캣 서버를생성하고, 톰캣 서버는 서블릿 컨테이너 안에 해당 서블릿을 생성하게 됩니다.

 

톰캣 서버가 서블릿을 생성하는 방법은 @ServletComponentScan 어노테이션을 이용해서 만듭니다.

 

@ServletComponentScan

해당 어노테이션은 스프링 부트 어플리케이션이 시작될 때 자동으로 @WebServlet, @WebFilter, @WebListener 등의 어노테이션과 같은 서블릿 컴포넌트를 찾아서 등록해준다.

 

@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {

우선 @ServletComponentScan는 @WebServlet가 붙은 클래스를 서블릿으로 만들어준다.

이름은 helloServlet, 경로 매핑은 /hello 이렇게 돼 있으므로, localhost:8080/hello 라는 경로로 요청이 들어오면 해당 서블릿을 찾아서 돌려준다.

 

전체적으로 다시 설명하자면

 

  1. 클라이언트는 WAS에게 HTTP 요청을 보냄.
  2. WAS는 해당 HTTP 요청 메시지를 뜯어서 request 객체랑 response 객체를 생성.(response객체는 비어있는 상태, request 안에는 요청 메시지의 모든 정보가 들어있다. ex, 헤더, 바디)
  3. request, response 객체를 해당 서블릿에게 넘긴다.
  4. 서블릿은 프로세스 처리를 하고, 응답 결과를 response 객체에 넣어서 was에게 돌려준다.
  5. was는 response를 클라이언트에게 돌려준다.

이 흐름으로 진행하게 된다.

 

반응형