스프링에는 MVC 패턴으로 Model, View, Controller가 있음
모델-뷰-컨트롤러(Model–View–Controller, MVC)는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴
Model
- Controller에서 받은 데이터를 저장하는 역할
- DTO(Data Transfer Object), VO(Value Object), DAO(Data Access Object)등
View
- Controller에서 전달 받은 Model 데이터 등을 이용하여 클라이언트에 표시
- HTML, JSP등
Controller
- 비즈니스 로직을 처리하는 영역
- Model과 View를 연결시켜주는 역할
MVC 패턴에는 2가지 방식이 있음
Spring MVC의 구조에는 DispatcherServlet, View Resolver, Interceptor, Handler, View 등으로 구성되어 있음
Front Controller, HTTP로 들어오는 모든 요청을 모두 받아 적절한 Controller로 Dispatch해주는 컨트롤러
web.xml
<servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
- DispatcherServlet Class의 전체 경로 등록
- 하위의 servlet-name과 상위 servlet-name은 동일하게 설정
- url-pattern에는 모든 요청에 대한 응답을 받기 위해 root폴더로 설정(원하는 디렉터리로 변경가능)
- url-pattern을 / 대신 /* 설정 하면 -servlet.xml 매핑 정보를 읽어와서 dispatch 하기 때문에 dispatcher-servlet.xml 생성
dispatcher-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <bean id="/index" class="com.test.TestController"/> <bean id= "viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/views"/> <property name="suffix" value=".jsp"/> </bean> </beans>
- dispatcher-servlet.xml 파일은 인터셉터, 컨트롤러와 같은 웹 패키지에 해당하는 클래스들의 설정을 지정할 수 있는 파일
- 컨트롤러 패키지 지정, URL 매핑이 필요함
- prefix는 jsp, html 파일의 경로
- suffix는 확장자, ~.jsp를 자동으로 찾을 수 있음