[Spring4] 웹 프로젝트 생성

[Spring4] 웹 프로젝트 생성

(참고서적 : 스프링4 프로그래밍 입문 / 최범균 / 가메출판사 / 챕터9 : p234 ~ p249)

최범균의 스프링4 프로그래밍 입문은 챕터9부터(234페이지) 웹 프로젝트 생성을 다룬다.

본 블로그에서는 중간 챕터들을 건너뛰고, 곧바로 웹 프로젝트 생성을 다룬다.

단, 챕터1에 해당하는 개발환경 세팅은 반드시 해야 한다.

cf) [Spring4] 스프링 개발환경 세팅 (https://blog.naver.com/bb_/221268887576)

1. 메이븐 프로젝트 생성


1-1. 폴더 구성

C:\spring4\sp4-chap09 폴더 생성

이어서 C:\spring4\sp4-chap09\src\main\java 폴더 생성
이어서 C:\spring4\sp4-chap09\src\main\resources 폴더 생성

1-2. pom.xml 작성

C:\spring4\sp4-chap09\pom.xml 작성한다.

<?xml version=”1.0″ encoding=”UTF-8″?>
<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>sp4</groupId>
 <artifactId>sp4-chap09</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>war</packaging>

 <dependencies>
  <dependency>
   <groupId>javax.servlet.jsp</groupId>
   <artifactId>jsp-api</artifactId>
   <version>2.2</version>
   <scope>provided</scope>
  </dependency>
  <dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>javax.servlet-api</artifactId>
   <version>3.0.1</version>
   <scope>provided</scope>
  </dependency>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-webmvc</artifactId>
   <version>4.1.0.RELEASE</version>
  </dependency>
 </dependencies>

 <build>
  <plugins>
   <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
     <source>1.7</source>
     <target>1.7</target>
     <encoding>utf-8</encoding>
    </configuration>
   </plugin>
  </plugins>
 </build>

</project>

1-3. 메이븐 컴파일

cmd 실행
cd C:\spring4\sp4-chap09
mvn compile

2. 이클립스에서 메이븐 프로젝트 임포트

이클립스 기동 – [File] – [Import…] – [Maven] 폴더 – Existing Maven Projects – [Next] 버튼 – Root Directory 에 C:\spring4\sp4-chap02 입력 하여 프로젝트 임포트한다.

3. 이클립스 톰캣 설정

3-1. 톰캣7 설치

톰캣7이 이미 설치되어 있는 경우 생략 가능하다.

톰캣7 웹페이지 : http://tomcat.apache.org/download-70.cgi
톰캣7 다운로드 바로가기 : http://mirror.apache-kr.org/tomcat/tomcat-7/v7.0.86/bin/apache-tomcat-7.0.86.zip

톰캣은 다운로드 받아서 특정 위치에 압축을 풀면 끝이다.

예) C:\devtool\apache-tomcat-7.0.86

3-2. 이클립스 서버 세팅 (톰캣7)

상단 메뉴의 [Window] – [Preferences] – 좌측 리스트의 [Server] – [Runtime Environments] – [Add] 버튼 클릭 – [Apache Tomcat v7.0] 선택 – [Next] – Tomcat installation directory 항목에 톰캣 경로 입력(ex: C:\devtool\apache-tomcat-7.0.86) – [Finish] – [Apply and Close] 버튼 클릭



4. 각종 설정파일(xml) 작성


4-1. spring-mvc.xml

/sp4-chap09/src/main/resources/spring-mvc.xml 파일을 작성한다.

<?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 />

 <mvc:default-servlet-handler />

 <mvc:view-resolvers>
  <mvc:jsp prefix=”/WEB-INF/view/” />
 </mvc:view-resolvers>

</beans>

4-2. web.xml

/sp4-chap09/src/main/webapp/WEB-INF/web.xml 파일을 작성한다.

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

 <servlet>
  <servlet-name>dispatcher</servlet-name>
  <servlet-class>
   org.springframework.web.servlet.DispatcherServlet
  </servlet-class>
  <init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>
    classpath:spring-mvc.xml
    classpath:spring-controller.xml
   </param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>

 <servlet-mapping>
  <servlet-name>dispatcher</servlet-name>
  <url-pattern>/</url-pattern>
 </servlet-mapping>

 <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</param-value>
  </init-param>
 </filter>
 <filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

</web-app>

4-3. spring-controller.xml

/sp4-chap09/src/main/resources/spring-controller.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
 xsi:schemaLocation=”http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans.xsd“>

 <bean class=”chap09.HelloController” />

</beans>

5. 소스코드 작성

5-1. HelloController.java

/sp4-chap09/src/main/java/chap09/HelloController.java 파일을 작성한다.

package chap09;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class HelloController {
 
 @RequestMapping(“/hello”)
 public String hello(Model model, @RequestParam(value = “name”, required = false) String name) {
  model.addAttribute(“greeting”, “안녕하세요, ” + name);
  return “hello”;
 }
}

5-2. hello.jsp

/sp4-chap09/src/main/webapp/WEB-INF/view/hello.jsp 파일을 작성한다.

<%@ page contentType=”text/html; charset=utf-8″ %>
<!DOCTYPE html>
<html>
<head>
<title>Hello</title>
</head>
<body>
인사말: ${greeting}
</body>
</html>

6. 이클립스에서 톰캣7 기동

프로젝트 폴더(sp4-chap09)에서 마우스 우클릭 – [Run As] – [Run On Server] 하면 서버 기동된다.

404 페이지가 뜨면 기동된 것이다.

이제 http://localhost:8080/sp4-chap09/hello?name=guest 로 접속한다.

아래처럼 나오면 성공이다.