스프링 MVC 기본기

dongeranguk·2021년 11월 25일
0

스프링 웹 개발

1. 스프링 MVC 기본기

스프링 MVC를 제대로 사용하려면, 아래의 내용을 알아야 쉽게 스프링 프레임워크를 이용할 수 있다.

  • 스프링 MVC 동작 방식
  • 컨트롤러 구현
  • mvc 네임스페이스

2. 웹 프로젝트 생성 및 설정

가장 먼저 할 작업으로는, 웹 프로젝트를 생성하는 것이다. 생성 과정은 다음과 같다.

  1. 프로젝트 디렉터리를 생성한다.
  2. 프로젝트 디렉터리에 생성된 다음의 세가지 디렉터리를 확인한다.
  • src/main/java
  • src/main/resources
  • src/main/webapp
  1. 웹 어플리케이션을 위한 생성된 pom.xml 파일을 확인한다.

2.1. pom.xml

pom.xml 파일에는 다음의 설정 정보를 담는다.
1. 의존 모듈

  • 서블릿, JSP
  • 스프링 MVC 모듈 및 스프링 MVC가 필요로 하는 모듈
  1. 웹 테스트를 위한 Jetty 서버 설정

2.2. web.xml

다음은 web.xml 파일에 DispatcherServlet 설정을 추가하는 것이다.

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>
    	org.springframework.web.servlet.DispatcherServlet
    <servlet-class>
    <init-param>
    	<param-name>contextConfigLocation</param-name>
        <param-value>
        	/WEB-INF/mvc-quick-exercise.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>

2.3. DispatcherServlet

DispatcherServlet은 내부적으로 스프링 컨테이너를 생성하는데, contextConfigLocation 초기화 파라미터를 이용해서 컨테이너를 생성할 때 사용할 설정 파일(mvc-quick-exercise.xml)을 지정한다.

dispatcher 서블릿에 대한 매핑을 *.do 로 지정하게되면, 웹 브라우저의 웹 요청 중 do로 끝나는 모든 요청을 dispatcher 서블릿이 처리할수 있게 된다.

최근에는 확장자를 사용하기 보다는 의미에 맞는 URL을 사용하는 곳이 증가하고 있는 추세이다.

2.4. <mvc:anntation-driven>

스프링 4.0에서는 <mvc:annotaion-driven>태그를 사용하면 RequestMappingHandlerMapping, RequestMappingHandlerAdapter
을 자동으로 빈 등록을 해주기 때문에 따로 설정하지 않아도 된다.

이 두 클래스는 @Contoroller 어노테이션이 적용된 클래스를 컨트롤러로 사용할 수 있도록 해준다.

서블릿 매핑 설정에 따른 매핑 경로
RequestMappinghandlerMapping의 alwaysUseFullPath속성의 값을 "true"를 설정하면 된다.
하지만, <mvc:annotation-driven>을 사용하는 것이 설정을 쉽게 할 수 있기 때문에 많이 사용한다.

  • 서블릿 매핑 설정에서 URL패턴을 "/"로 지정
  • 스프링 MVC 설정에 디폴트 서블릿 핸들러를 설정

.css와 같은 요청은 매핑된 컨트롤러가 존재하지 않을 때는 404 응답 코드를 웹 브라우저에 전송하는데, 이때 404 응답 코드 대신 컨테이너의 디폴트 서블릿을 이용해서 요청을 처리하도록 만들어 주는것이 <mvc:default-servlet-handler/>태그 이다.

0개의 댓글