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" %>