본문 바로가기
Spring Framework

Spring MVC 패턴 시작하기 / 프로젝트 생성 / 파일 구조

by 자유코딩 2018. 1. 27.
Spring MVC 패턴 시작하기 / 프로젝트 생성 / 파일 구조

 

스프링 MVC 패턴으로 프로젝트를 생성하는 방법입니다.

 

 

New - Spring Legacy Project 를 클릭합니다.

 

 

Spring MVC Project를 선택하고 Next를 클릭합니다.

 

 

HomeController 파일이 들어갈 패키지의 이름을 정하고 finish를 클릭합니다.

 

이름1.이름2.이름3의 형태로 점을 두번 적어서 패키지 이름을 작성하시면 됩니다.

 

아래 사진은 위에 서술한 방법을 따라서 생성된 다른 프로젝트입니다.

 

스프링 MVC 프로젝트의 구조는 사진과 같습니다.

 

webapp안의 views 폴더 안에 화면에 관한 jsp 파일들이 들어갑니다.

 

 

스프링 MVC 프로젝트 요청 처리 순서

 

 

사진 출처 : http://terasolunaorg.github.io/guideline/1.0.1.RELEASE/en/Overview/SpringMVCOverview.html#id2

 

사진 속의 보라색 영역은 개발자가 구현하는 부분이다.

 

파란색은 스프링 프레임워크에서 제공한다.

 

초록색은 스프링 프레임워크에서 제공하거나 개발자가 구현한다.

 

클라이언트의 요청 이후에 위치한 Filter는 Encoding 을 하기도 한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>        
    </filter-mapping>
cs

 

Filter를 거친 요청은 DispatcherServlet으로 전송된다.

 

DispatcherServlet은 HandlerMapping을 통해서 요청에 해당하는 적절한 Controller를 찾게 된다.

 

HandlerMapping은 클라이언트의 요청 url을 어떤 controller가 처리할지를 결정한다. 그리고 그것을 DispatcherServlet에 전달한다.

 

DispatcherServlet은 실행할 Controller 정보를 HandlerAdapter에 전달한다.

 

HandlerAdapter는 해당 Controller를 호출하게 된다.

 

Controller는 Service를 호출해서 클라이언트의 요청을 처리한다.

 

Service에서는 DAO 를 통해서 DB 작업을 수행한다.

 

Controller는 작업을 처리한 후 그 결과를 Model 에 담고 View의 이름을 HandlerAdapter에게 전달하게 된다.

 

ViewResolver는 Commander의 처리 결과를 보여줄 View를 결정한다.

 

DispatcherServlet : 클라이언트의 요청을 전달 받고. Controller에게 클라이언트의 요청을 전달하고, Controller가 반환한 결과 값을 View에게 전달하여 알맞은 응답을 생성하도록 한다.

 

클라이언트의 요청은 스프링의 DispatcherServlet클래스로 보내지게 됩니다.

 

 

 

Contact

 

jswoo

blog : fors.tistory.com

youtube : https://www.youtube.com/channel/UCdShL6X4Ac5xlLouOhRvfvg

email : jswoo030@gmail.com

naver 카페 : http://cafe.naver.com/codeshare

카카오톡 오픈 채팅방 : https://open.kakao.com/o/gqugSQF

카카오톡 ID : Jongsun1001

 

댓글