Maven을 사용하여 Spring MVC 웹 프로젝트 만들기

자세한 설명은 나중에 열심히 정리해 가고 싶습니다.
우선, 흐름만 쭉 기억해.

다양한 버전



JDK: 1.8
Eclipse: Mars
Maven: 4.3

1. Maven 프로젝트 만들기



Eclipse를 연 상태에서 시작합니다.
신규 > Maven > Maven 프로젝트 > 다음

신규 Maven 프로젝트 화면이 표시되므로 「심플한 프로젝트 작성(아키 타입 선택 스킵)」에 체크를 넣어 다음에

그룹 ID: 루트 패키지 이름
아티팩트 ID: 프로젝트 이름
입력하고 완료



helloworld 프로젝트가 생성되었는지 확인

2. Spring 종속성 추가



helloworld/pom.xml 소스 열기

helloworld/pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                             http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>sample</groupId>
  <artifactId>helloworld</artifactId>
  <version>0.0.1-SNAPSHOT</version>

<!-- ▽ add ▽ -->
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>4.2.3.RELEASE</version>
     </dependency>
  </dependencies>
<!-- △ add △ -->
</project>

pom.xml은 프로젝트 정보 파일입니다.
dependencies 속성의 부분을 추가합니다.
이번에는 Spring의 "Spring-webmvc"라이브러리를 사용했습니다.

3. 프로젝트 패싯 설정



동적 웹 프로젝트이므로 "Dynamic web Module"을 추가합니다.

프로젝트 > 오른쪽 클릭 > 속성 > Progect Facets(프로젝트 패싯) > 패싯 양식 변환...



Dynamic web Module(동적 웹 모듈)을 확인합니다.
자세한 구성 사용 가능...을 선택하고 컨텐츠 디렉토리에 src/main/webapp를 입력하십시오.
web.xml 배포 설명자 생성 확인란을 선택하고 확인을 누릅니다.



원래 창으로 돌아가서 적용 > OK로 화면이 자동으로 닫힙니다.



4. DispatcherServlet 설정



helloworld/src/main/webapp/WEB-INF/web.xml을 엽니다.
서블릿의 매핑 설정을 추가합니다.

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  version="2.5">

    <display-name>mvcSample</display-name>

    <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>

<!-- ▽ add ▽ -->
    <servlet>
        <servlet-name>spring-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
<!-- △ add △ -->
</web-app>

5. Spring의 설정 파일 작성



web.xml 파일과 동일한 계층 구조에 "spring-dispatcher-servlet.xml"을 만듭니다.
(/helloworld/src/main/webapp/WEB-INF/spring-dispatcher-servlet.xml)
다음 내용을 설명합니다.

spring-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"
  xmlns:p="http://www.springframework.org/schema/p"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-4.0.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

    <context:component-scan base-package="com.controller" />

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
        <property name="prefix">
            <value>/WEB-INF/views/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>

    <mvc:resources mapping="/resources/**" location="/resources/" />
    <mvc:annotation-driven />
</beans>

6. Controller 설정



컨트롤러 파일을 만듭니다.
"/helloworld/src/main/java/com/controller"가 되도록 "com""controller"폴더를 만듭니다.
그런 다음 controller 폴더 바로 아래에 "SampleController.java"파일을 만듭니다.
(/helloworld/src/main/java/com/controller/SampleController.java)

SampleController.java

package com.controller;
import static org.springframework.web.bind.annotation.RequestMethod.GET;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class SampleController {

    @RequestMapping(value = "/", method = GET)
    public String show() {
        // jspのファイル名
        return "test";
    }
}

7. jsp 파일 만들기



WEB-INF 아래에 jsp 파일을 만듭니다.
이번에는 views 폴더를 만들고 그 아래에 "test.jsp"를 만들었습니다.
(/helloworld/src/main/webapp/WEB-INF/views/test.jsp)

test.jsp
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>Hello Spring Framework</title>
</head>
<body>Hello Spring Framework</body>
</html>

8. 기타 설정



클래스 패스 설정



jsp 파일에 오류 다음 오류가 발생하면.


この行で見つかった複数の注釈:
    - スーパークラス "javax.servlet.http.HttpServlet" が Java ビルド・パスで見つかりませんでした
    - スーパークラス "javax.servlet.http.HttpServlet" が Java ビルド・パスで見つかりませんでした

프로젝트 > 마우스 오른쪽 버튼 클릭 > 속성 > Java 빌드 경로 > 플라이브러리 > 외부 JAR 추가



Tomcat이있는 디렉토리를 열고 lib/servlet-api.jar을 선택하고 "열기"를 누릅니다.
라이브러리에 선택한 jar 파일이 추가되었는지 확인합니다.
적용 > OK로 오류가 사라졌는지 확인합니다.

배포 어셈블리 설정



이대로 실행하고 다음 오류가 나오면.
java.lang.ClassNotFoundException:org.springframework.web.servlet.DispatcherServlet

프로젝트 > 마우스 오른쪽 버튼 클릭 > 속성 > 배포 어셈블리 > 추가



Java 빌드 경로 항목 > Maven 종속성 > 완료 > 적용 > OK

9. 실행



프로젝트 > 마우스 오른쪽 버튼 > 실행 > 서버에서 실행
http://localhost:8080/helloworld/
브라우저에서 확인합니다.

참고 자료

좋은 웹페이지 즐겨찾기