서블릿
동적 웹페이지(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 라는 경로로 요청이 들어오면 해당 서블릿을 찾아서 돌려준다.
전체적으로 다시 설명하자면
- 클라이언트는 WAS에게 HTTP 요청을 보냄.
- WAS는 해당 HTTP 요청 메시지를 뜯어서 request 객체랑 response 객체를 생성.(response객체는 비어있는 상태, request 안에는 요청 메시지의 모든 정보가 들어있다. ex, 헤더, 바디)
- request, response 객체를 해당 서블릿에게 넘긴다.
- 서블릿은 프로세스 처리를 하고, 응답 결과를 response 객체에 넣어서 was에게 돌려준다.
- was는 response를 클라이언트에게 돌려준다.
이 흐름으로 진행하게 된다.
반응형
'스프링 강의(인프런)' 카테고리의 다른 글
./gradlew clean build 에러 발생 (0) | 2023.07.06 |
---|---|
@Configuration 없이 @Bean을 등록하는 경우 (0) | 2023.06.19 |
JSP와 서블릿의 차이 (0) | 2023.06.17 |
스프링 Bean이 중복됐을 경우 해결 방법 (0) | 2023.06.14 |