Servlet & Dispatcher Servlet
Servlet
Java를 사용해 웹을 만들기 위한 기술
클라이언트의 요청을 받고 결과를 전송하는 자바 프로그램이다.
서블릿은 자바로 구현된 CGI라고 말한다.
CommonGatewayInterface
공용 게이트웨이 인터페이스
웹 서버 상에서 사용자의 프로그램을 동작시키기 위한 조합
Servlet의 동작
사용자의 요청 (URL 입력) -> Http Request를 Servlet Container에 전송
⬇️
Servlet Container는
사용자의 요청을 server로 전송할 HttpServletRequest
server의 응답을 사용자에게 반환할 HttpServletResponse 두 객체를 생성한다.
⬇️
Servlet Container가 요청에 적합한 Servlet을 찾아
service() 메서드를 호출 -> doget(),dopost() 등 적합한 메서드를 다시 호출한다.
⬇️
호출된 메서드들이 동적 페이지를 생성
HttpServletResponse 객체에 응답을 담아 보낸 후
HttpServletRequest , HttpServletReponse 객체를 소멸시킨다.
Dispatcher Servlet
Servlet Container(tomcat)이 사용자의 요청을 받으면
가장 먼저 Dispatcher Servlet이 요청을 받아 적합한 Controller에 역할을 위임해준다.
이러한 역할을 하기 때문에 Front Controller라고도 불린다.
Dispatcher Servlet의 동작
클라이언트의 요청을 Dispather servlet이 수신
요청 정보를 통해 요청을 위임할 핸들러(Controller)를 찾는다.
⬇️
핸들러 -> Controller로 요청을 위임
비즈니스 로직이 처리된다.
⬇️
Controller가 ResponseEntitly를 반환
⬇️
HandlerAdaptor가 반환받은 ResponseEntity를 통해
Response 처리를 진행
⬇️
서버의 응답을 클라이언트로 반환