본문 바로가기

Spring

Spring(6) - 스프링 MVC프로젝트

먼저 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의 기본흐름

  1. 먼저 클라이언트가 요청을하면 DispatcherServlet이 요청을 받아서 HandlerMapping으로 전달한다.
  2. HandlerMapping에서 요청에 알맞은 Controller를 검색 후 HandlerAdater로 처리를 요청한다.
  3. Controller에서 요청을 받아 메서드를 실행후 결과값을 HandlerAdapter로 리턴한다.
  4. 결과값을 ModelAndView로 변환해서 DispatcherServlet으로 리턴한다.
  5. DispatcherServlet에서 ViewResolver를 통해서 결과를 보여줄 View를 검색한다.
  6. 응답결과를 생성해서 View(JSP)로 보내 결과를 출력한다.