1) 서블릿이란
- 웹 애플리케이션을 만들때 요청에 따른 동적 페이지 생성을 위한 추상화된 자바 표준/인터페이스 의미
- 추상클래스인 HttpServlet을 상속받아 구현
서블릿은 생성(init), 요청처리(service), 소멸(destory)의 기본적인 구조를 가짐
HttpServlet안의 service 메서드는 http method에 따라 요청을 알맞게 처리할 수 있도록 분기처리가 되어있음
2) 흐름
a. 서블릿 request 및 response 객체 생성
b. 설정파일(web.xml)을 통해 매핑할 servlet 확인
c. 해당 서블릿 인스턴스가 없으면 init() 통한 생성
d. 서블릿 컨테이너에 스레드 생성 및 res,req를 인자로한 service 실행
e. 응답처리
3) 서블릿 컨테이너
- 서블릿의 생명주기를 관리하는 객체
- 서블릿의 생명주기라 함은 서블릿의 생성, 호출, 소멸까지의 과정을 의미, 이는 컨테이너가 제어한다
4) 디스패처서블릿
- 공통로직(모든 서블릿이 공통으로 처리하는 작업)을 처리하고 모든 요청을 받도록하는 하나의 서블릿 객체를 의미
- 각 요청을 공통으로 처리할 프론트컨트롤러
- 기존 서블릿마다 web.xml에 설정등록을 해야하는 번거로움이 사라짐
5) Spring mvc
- 스프링 프레임워크에 있는 모듈로서 MVC 패턴을 통해 웹서비스를 구현
- 디스패처서블릿을 통해 요청에 대한 처리를 담당할 핸들러(컨트롤러)를 찾는다.
- 디스패처서블릿은 Spring mvc의 유일한 서블릿임
- 요청 -> 디스패처서블릿 -> 서블릿 웹어플리케이션컨텍스트(컨트롤러, 뷰리졸버, 핸들러매핑) -> 루트 웹어플리케이션컨텍스트(서비스, 레포지터리)의 흐름을 가진다
흐름은 spring mvc 흐름 검색해서 그림으로 이해하는게 더 좋음 (그림은 추후 그려보도록..)
즉, 스프링으로 웹 개발을 한다는 의미는
스프링mvc에서 제공하는 디스패처서블릿과 웹 요청 관련 구현체 및 스프링 IoC를 사용한 개발을 뜻함
개발자는 요청처리 로직을 담당하는 핸들러에만 집중하여 개발하면 됨. 나머지는 스프링 프레임워크가 알아서^^
'Web' 카테고리의 다른 글
[Web] Ajax (0) | 2019.05.10 |
---|