본문 바로가기
Web

서블릿(Servlet)

by foreverever 2022. 5. 18.
반응형

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