스프링의 웹 기술은 MVC 아키텍처를 근간으로 한다
1. MVC 구조란 ?
MVC란 비즈니스 로직 처리를 하는 모델 M, 화면 출력 뷰 V, 제어 로직 담당인 컨트롤러 C 로 클라이언트의 요청을 처리하는 응답구조를 뜻한다.
MVC 아키텍처는 보통 프론트 컨트롤러(front Controller) 패턴과 함께 사용한다.
2. 프론트 컨트롤러(FrontController) 역할
이 프론트 컨트롤러는 주로 제일 앞에서 서버로 들어오는 모든 요청을 받아서 처리한다.
또한, 공통처리 작업을 먼저 수행 한 후, 적절한 세부 컨트롤러로 작업을 위임해주고
예외가 발생할 때는 일괄된 방식으로 에러를 처리해준다.
스프링에서 제공하는 서블릿/MVC의 핵심은 DispatcherServlet이라는 프론트 컨트롤러가 있다.
이 DispatcherServlet은 MVC 아키텍처로 구성된 프리젠테이션 계층을 만들 수 있도록 설계되어 있다.
3. Http 요청 접수
서블릿 컨테이너는 HTTP Protocol을 통해 들어오는 요청이 Dispatcher에 할당된 것이라면
HTTP 요청정보를 DispatcherServlet에게 전달한다.
web.xml에 DispatcherServlet이 전달받을 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
'Java > Spring Framework' 카테고리의 다른 글
[SPRING 시작-3] #INTERCEPTOR 사용법 (ECLIPSE+SPRING+MAVEN) / <INTERCEPTORS> 설정방법 (0) | 2019.09.09 |
---|---|
[SPRING 시작-2] # WEB.XML 설정엔 무엇이 있을까? (ECLIPSE+SPRING+MAVEN) (0) | 2019.09.09 |
[Spring Framework][STS] STS 설치 에러 (0) | 2019.09.09 |
ROOT-CONTEXT.XML과 POM.XML을 같이 설정해보자 (0) | 2019.09.09 |
@Annotation / 어노테이션 정리 (0) | 2019.09.09 |