: 서블릿 클래스의 경로를 지정, 이 경우에는 스프링의 DispatcherServlet 클래스가 사용된다.
: 서블릿 초기화 매개변수를 설정하는 데 사용
- : 초기화 매개변수의 이름을 지정, 여기서는 "contextConfigLocation"이라는 이름을 사용한다.
- : 초기화 매개변수의 값으로서 스프링 컨텍스트 파일의 위치를 지정한다.
여기서는 "/WEB-INF/spring/appServlet/servlet-context.xml" 경로를 사용합니다.
: 서블릿 컨테이너가 웹 애플리케이션을 시작할 때 서블릿을 초기화하도록 지정,
여기서는 1로 설정되어 있으므로 가장 먼저 초기화된다.
Servlet Mapping
: 매핑할 서블릿의 이름을 지정, 앞서 정의한 "appServlet"을 여기서 사용한다.
: 서블릿을 어떤 URL 패턴에 매핑할지 지정, 이 경우에는 "/"로 설정되어 있어서
모든 URL에 대해 이 서블릿이 처리된다.
✔ servlet-context.xml
스프링 MVC에서 사용되는 DispatcherServlet이 참조하는 설정파일이다.
: 애노테이션 기반의 MVC를 활성화시키는 역할을 한다.
@Controller, @RequestMapping 등의 애노테이션을 사용하여 컨트롤러를 정의할 수 있도록 해준다.
: 정적 자원에 대한 매핑을 설정합니다.
Ex) /resources/css/style.css와 같은 요청이 오면 실제 파일은 /resources/css/style.css 경로에서 찾아서 제공됩니다.
: 뷰 리졸버를 설정하는데 사용된다.
- 이 설정은 컨트롤러가 반환하는 뷰 이름을 기반으로 실제 JSP 파일의 경로를 결정한다.
InternalResourceViewResolver : JSP 뷰를 내부 리소스로 해석합니다.
: JSP 파일의 경로 앞에 추가되는 접두어를 설정
: JSP 파일의 확장자를 설정한다.
:
지정된 패키지(kr.board.controller) 밑에서 @Controller 어노테이션이 붙은 클래스들을 찾아 스프링 컨테이너의 빈으로 등록
이렇게 등록된 빈은 스프링 MVC에서 컨트롤러로 활용된다.
✔ 정리
web.xml과 servlet-context.xml은 스프링 MVC 애플리케이션에서 필요한 핵심적인 구성 요소들을 정의한다.
애노테이션 기반의 MVC를 활성화
정적 자원에 대한 핸들링
뷰 리졸버 설정
컨트롤러의 스캔을 통한 빈 등록
SpringBoot Servlet
스프링부트에서는 servlet 설정을 자동으로 잡아주기 때문에 별도의 설정이 필요없다.
그러나 ServletComponentScan 어노테이션을 활용하면 servlet의 직접 등록이 가능하다.
Spring Servlet
Spring에서는 web.xml을 통해 servlet에 대한 설정을 적는다.
web.xml에서 초기화 진행시 적용되는 servlet 정보는 servlet-context.xml 에서 적는다.
✔ web.xml
Servlet
여기서는 "/WEB-INF/spring/appServlet/servlet-context.xml" 경로를 사용합니다.
여기서는 1로 설정되어 있으므로 가장 먼저 초기화된다.
Servlet Mapping
모든 URL에 대해 이 서블릿이 처리된다.
✔ servlet-context.xml
스프링 MVC에서 사용되는
DispatcherServlet
이 참조하는 설정파일이다./resources/css/style.css
와 같은 요청이 오면 실제 파일은/resources/css/style.css
경로에서 찾아서 제공됩니다.InternalResourceViewResolver : JSP 뷰를 내부 리소스로 해석합니다.
✔ 정리
web.xml
과servlet-context.xml
은 스프링 MVC 애플리케이션에서 필요한 핵심적인 구성 요소들을 정의한다.애노테이션 기반의 MVC를 활성화
정적 자원에 대한 핸들링
뷰 리졸버 설정
컨트롤러의 스캔을 통한 빈 등록
SpringBoot Servlet
스프링부트에서는 servlet 설정을 자동으로 잡아주기 때문에 별도의 설정이 필요없다.
그러나
ServletComponentScan
어노테이션을 활용하면 servlet의 직접 등록이 가능하다.✔ ServletComponentScan
메인 메서드에 해당 어노테이션을 추가한다.
현재 repo에 등록되어있는
bootAndvue
프로젝트에 적용하였다.ServletComponentScan 설정
서블릿 등록
실행 결과
HelloServlet.java
에서 설정한 url로 요청한다.Spirng MVC 동작 과정
✔ Dispatcher-Servlet(디스패처 서블릿)의 동작 방식
Reference
망나니개발자 : [Spring] Dispatcher-Servlet(디스패처 서블릿)이란? 디스패처 서블릿의 개념과 동작 과정