Spring MVC(Model / View / Controller) 흐름


요소

설명

 Client

URL로 해당 정보를 요청합니다.

DispatcherServlet

DispatcherServlet은 web.xml에 정의한 서블릿으로써, Client의 요청을 전달받아 Controller에게 전달하고, Controller가 리턴한 결과값을 지정된 View에 전달하여 알맞은 오브젝트를 생성하도록 합니다. (제어 역할)

HandlerMapping

HandlerMapping을 이용하여 Controller 검색합니다.

Controller

Client의 요청을 처리한 뒤, 처리 결과를 DispatcherServlet에 알려줍니다.

ViewResolver

처리 결과를 어떤 View에 보낼지를 결정합니다.

View

처리 결과를 보여줍니다.



Spring MVC 개발 프로세스


- 클라이언트의 요청(URL)을 제어할 DispatcherServlet을 web.xml 파일에 설정.

- Controller의 처리 결과를 어떤 View 페이지로 넘길지 결정하는 ViewResolver를 설정.

- Controller를 작성한다.

- View페이지 코드 작성.



Spring MVC 테스트


1. Spring Legacy Project를 선택후 Next



2. Spring MVC Project를 선택후 Finish



3. WEB-INF/spring/appServlet/servlet-context.xml을 연후 경로를 수정해줍니다.


<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<beans:property name="prefix" value="/WEB-INF/test/jsp/" />

<beans:property name="suffix" value=".jsp" />

</beans:bean>


4. 브라우저창에 http://localhost:8080/를 입력하면 위 화면과 같은 페이지가 뜨면서 Hello world라는 글자가 출력됩니다.




▶ 만약 404 에러페이지가 뜬다면?

test/jsp/home.jsp로 넣어주고 톰캣을 돌려보았는데 404에러가 났었는데요.

왜 404가 날까 고민하던중 이유를 찾았는데 tomcat을 추가하고 context path를 수정하지 않았네요. tomcat을 Add and Remove를 통해서 추가하면 context path는 기본적으로 project명을 따라가는데 이는 참고하도록하고 path는 아래와 같이 수정.



▶ 만약 한글이 깨진다면?


 jsp 페이지 상단에 다음과 같은 문구를 삽입합니다.


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>