본문 바로가기
Framework/Spring

[Spring] DispatcherServlet 이란? / DispatcherServlet의 개념 / url 패턴 사용방법

by 나비와꽃기린 2016. 10. 14.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

스프링의 웹 기술은 MVC 아키텍처를 근간으로 한다


1. MVC 구조란 ?

MVC란 비즈니스 로직 처리를 하는 모델 M, 화면 출력 뷰 V, 제어 로직 담당인 컨트롤러 C 로 클라이언트의 요청을 처리하는 응답구조를 뜻한다.

MVC 아키텍처는 보통 프론트 컨트롤러(front Controller) 패턴과 함께 사용한다.


2. 프론트 컨트롤러(FrontController) 역할

이 프론트 컨트롤러는 주로 제일 앞에서 서버로 들어오는 모든 요청을 받아서 처리한다.

또한, 공통처리 작업을 먼저 수행 한 후, 적절한 세부 컨트롤러로 작업을 위임해주고

예외가 발생할 때는 일괄된 방식으로 에러를 처리해준다.

스프링에서 제공하는 서블릿/MVC의 핵심은 DispatcherServlet이라는 프론트 컨트롤러가 있다.

DispatcherServletMVC 아키텍처로 구성된 프리젠테이션 계층을 만들 수 있도록 설계되어 있다.

3. Http 요청 접수

서블릿 컨테이너는 HTTP Protocol을 통해 들어오는 요청이 Dispatcher에 할당된 것이라면

HTTP 요청정보를 DispatcherServlet에게 전달한다.

web.xmlDispatcherServlet이 전달받을 url 패턴이 정의되어 있는데 그것이 이 소스이다.


<servlet>
	<servlet-name>appServlet</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<load-on-startup>1</load-on-startup>
</servlet>


<servlet-mapping>
	<servlet-name>appServlet</servlet-name>
	<url-pattern>/</url-pattern>
</servlet-mapping>


위 소스는 appServlet 로 등록된 DispatcherServlet에게 /로 시작하는 모든 요청을 할당하라는 의미가 된다.

DispatcherServlet이 담당할 Http 요청 url 패턴을 지정해 줘야 한다. Url에는 *** 와 같은 와이드카드를 사용하는 패턴을 넣을 수 있다.

 

 *.do 와 같이 .do로 끝나는 요청 처리 ex) /test.do , /example.do

 /app*처럼 /app으로 시작하는 URL 처리 ex) /appTest, /appSample, /app

 

**는 하나 이상의 경로를 지정해 줄 때 사용하기 때문에

/app/**/sub /app으로시작하고 /sub로 끝나는 URL을 처리 ex) /app/exam/sub, /app/a/b/c/sub