먼저 Spring MVC프로젝트를 만들기위한 순서를 알아보겠다.
1. maven 웹 프로젝트 생성하기
- maven 웹프로젝트를 생성하면 jar파일들을 일일히 다운로드받을 필요없이 pom.xml에서 의존설정을 하면된다.
- 프로젝트를 생성하면 src/main/java, src/main/resources, src/main/webapp 세 디렉토리를 생성한다.
- 각각 자바파일, xml등 지원파일, 웹 어플리케이션 생성파일을 담는 디렉터리를 의미한다.
2. web.xml 설정하기
- dispatcherServlet, encodingFilter 설정을 해준다.
<servlet>
<servlet-name>dispatcher</servlt-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>경로/*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
// filter
<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 or euc-kr</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3. Controller 구현하기
- 간단한 예시는 다음과 같다.
@Controller
public class exController{
@RequestMapping("경로")
public ModelAndView ex(){
ModelAndView mv = new ModelAndView("뷰 경로");
mv.addObject("greeting", "안녕하세요");
return mv;
}
}
4. View 구현하기
- Controller에서 보낸 greeting정보를 출력하기 위한 View(jsp)는 ${greeting}을 통해 EL표현식으로 출력할 수 있다.
5. Spring 설정파일(XML) 작성
- xml설정파일에서는 여러가지 설정을 할 수 있는데 기본적인 viewResolver설정방법을 알아보겠다.
<?xml version = "1.0" encoding = "UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:mvc = "http://www.springframework.org/schema/mvc"
xmlns:xsi = "http:///www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd>
<mvc:annotation-driven/>
<bean id = "viewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name = "prefix" value = "/WEB-INF/views/"/>
<property name = "suffix" value = ".jsp"/>
</bean>
<bean class = "경로.helloController"/>
</beans>
6. Spring MVC의 기본흐름
- 먼저 클라이언트가 요청을하면 DispatcherServlet이 요청을 받아서 HandlerMapping으로 전달한다.
- HandlerMapping에서 요청에 알맞은 Controller를 검색 후 HandlerAdater로 처리를 요청한다.
- Controller에서 요청을 받아 메서드를 실행후 결과값을 HandlerAdapter로 리턴한다.
- 결과값을 ModelAndView로 변환해서 DispatcherServlet으로 리턴한다.
- DispatcherServlet에서 ViewResolver를 통해서 결과를 보여줄 View를 검색한다.
- 응답결과를 생성해서 View(JSP)로 보내 결과를 출력한다.
'Spring' 카테고리의 다른 글
Spring(8) - HandlerMapping, HandlerAdapter (0) | 2019.04.15 |
---|---|
Spring(7) - HandlerInterceptor (0) | 2019.04.15 |
Spring(5) - AOP(관점지향프로그래밍) (0) | 2019.04.10 |
Spring(4) - 빈의 생명주기와 범위 (0) | 2019.04.10 |
Spring(3) - @Autowired, @Resource 사용하기 (0) | 2019.04.09 |