TIL

[TIL] 서블릿, Spring

nayoon 2025. 6. 28. 12:58

서블릿은 자바 웹 기술의 핵심으로 요청을 처리하고 응답을 자동으로 생성하는 컴포넌트이다.

(컴포넌트란 재사용 가능한 모듈을 의미한다)

 

스프링의 기반은 서블릿인데 DispatcherServlet은 HttpServlet을 상속하고 있고 있다.

DispatcherServlet은 Spring의 front controller 역할을 하고 있는데

Spring을 처음 키면 내부적으로 HttpServlet 생성하는 코드를 등록하는데

이때 urlPatterns = “/” 이라는 모든 요청을 다 커버하겠다는 옵션을 추가함으로써

서블릿 컨테이너가 8080 포트를 열고 URL이라고 판단하는 모든 요청을 전달받아 처리하게 된다.

 

참고로 서블릿 컨테이너는 서블릿 객체를 생성, 초기화, 응답, 종료 생명 주기를 관리하는 역할을 한다.

 

 

그래서 전달받은 요청을 처리하기 위해 최초 호출하는 메소드는 service(HttpServletRequest request, HttpServletResponse response)이다. doGet, doPost 등으로 분기하는 엔트리 포인트로 적절한 doDispatch로 호출을 위임한다.

 

중요한 건 doDispatch

여기에서 컨트롤러를 찾고, 호출하고 응답값 처리를 위해 ResponseBody, RestController로 json 혹은 ViewResolver로 jsp, html을 만드는 역할을 한다.

 

그래서 doDispatch에서 HandlerMapping, HandlerAdapter, ViewResolver 을 호출해서 요청부터 응답을 모두 처리한다.

 

이때 HandlerMapping은 URL에 알맞은 컨트롤러를 찾는 역할 (OrderController.order())

HandlerAdapter는 HandlerMapping이 찾아온 컨트롤러를 실행하는 역할을 한다.

 

컨트롤러가 가져온 결과를 바탕으로 ViewResolver 혹은 HttpMessageConverter(JSON 변환) 처리해서 최종 결과를 반환한다.

'TIL' 카테고리의 다른 글

TIL 4일차  (1) 2022.11.30
TIL 3일차  (1) 2022.11.29
TIL 2일차  (1) 2022.11.16
TIL 1일차  (0) 2022.11.15