[Spring] Spring MVC를 만들어보자

     

    1. 프로젝트 생성 NEW - ORTHER

     

     

    2. Spring Legacy Project 생성

     

     

    3. Project명 생성, Spring MVC Project 선택

     

     

    4.  필수적으로 3개의 경로를 통해 도달하도록 설정

    (kr.co.spring  ,  com.co.spring 등)

     

     

    4. MVC가 정상적으로 만들어졌는지 확인한다.

    Controller 위치와 src 안의 view 위치를 파악해둔다.

     

     

     

    Spring MVC 구조도

    Client를 통해 DispatcherServlet으로 가는 것을 확인한다.

    DispatcherServlet이 모든 것을 관리, 실행하므로 매우 중요함을 알 수 있다.

    출처 : https://ooz.co.kr/226

     

     

    Client

     

    의 위치에 속한다.

    jsp를 실행하게 되면 가장 먼저 실행하는 경로, 위치에 속한다.

    그래서 들어가보면 자동으로 만들어진 Mapping을 확인 할 수 있다.

     

    먼저 JSP를 보았다면, 대충 파악이 가능하다.

    / 의 경로 입력을 받게 된다면

    Mapping이 실행된다.

    Servlet-class의 경로의 DispatcherServlet가 실행되도록 설정 되어 있는 것을 확인 할 수 있다.

    그러나 그 아래 param-value가 설정이 되있으므로

    다시 한번 저 경로의 XML이 실행되는 것으로 해석해야 한다.

     

     

    Dispatcher

    Dispatcher의 위치의 xml 코드이다.

     

     

     

    여기서 3가지의 경로를 확인 할 수 있다.

     

    resource : 이미지, 동영상, 파일 등 기존 Dynamic Web Project에서는 실제 경로에다가 담아야하지만, Spring에서는 자동으로 경로 지정이 되어 있다.

     

    bean : 경로를 지정해준다. 일종 "절대경로"에 근접하도록 만들어지는 매우 편안한 기능이다.

    /WEB-ING/views/ + 뷰 이름 + .jsp 로 지정이 되기 때문에 가능하다.

     

    context : 실제적으로 사용되는 위치이다. Dispatcher이 실행되면 해당 메소드, 클레스등 위치를 파악하기 위한 검색 범위 설정이라고 생각하면 된다.

     

     

    Controller

    JSP의 Controller하고 좀 다르게 경로 이동이 되어서 약깐 헷갈릴 수 있다.

     

    위의 Disptacher의 context의 스캔 범위 내에 설정 된

    제일 위의 @RequestMapping(value="/", method = RequestMethod.GET)의 어노테이션을 통해

    위치를 파악해 Controller.java에 접속 되었다.

     

    get 방식의 키값 = "/"에 일치 된 어노테이션이 실행 된 모습이다.

     

    따라서 키 값 = "/"이 일치되면 return home이 실행되는 코드이다.

    이제 저것을 풀게 된다면 아래 위치의 JSP가 실행된다.

     

    이제 다시 Dispatcher이 작동되어서 WEB-INF/views/home.jsp 가 실행된다.

     

     

    실행 모습

    home.jsp를 실행하면 다음과 같다.

     

    그러나 어노테이션 "/" 작동하게 만들어야 하므로 뒤의 경로를 모두 지운다.

     

    프로젝트명 다음에 "/"만 들어갔으므로 위의 경로대로 XML이 정상적으로 실행 되었다.

    따라서 어노테이션 "/"도 실행되었으므로 정상적으로 home.jsp를 불러오는 것을 확인 할 수 있다.

    반응형

    'Web > Spring' 카테고리의 다른 글

    [Spring] MVC 이해하기3  (0) 2020.10.26
    [Spring] MVC 패턴 이해하기2  (0) 2020.10.26
    [Spring] AOP 사용하기(Java)  (0) 2020.10.22
    [Spring] 선택해서 해당 xml 실행하게 만들기  (0) 2020.10.22
    [Spring] AOP 사용하기  (0) 2020.10.22

    댓글

    Designed by JB FACTORY