Spring MVC 소개 및 프로젝트 세팅

728x90

1강. Spring MVC 소개

[Spring Web MVC]

-Spring Web MVC는 서블릿 API를 기반으로 만들어진 웹 프레임워크이다.

-공식 이름은 Spring Web MVC이지만, Spring MVC라는 이름 더 多사용

-Spring MVC에는 웹 어플리케이션 개발을 위한 다양한 라이브러리가 포함되어 있으며

이를 통해 반복적인 작업을 상당히 줄일 수 있어서 프로젝트 수행 생산성/유지보수성 높임O

[개발 방식]

(1) XML 이용한 방법

(2) 자바 @어노테이션 이용하는 방법


2강. 설치할 프로그램

-JDK 8 버전 이상 -이클립스 -Apache tomcat(9.0) -Oracle Database 11g

3강. JDK 설치/설정

[JDK]

-Java Development Kit

-Java 기반 프로젝트 수행 위해 반드시 필요한 개발 도구

[JDK 8 환경 변수 설정]

-JDK 설치 경로를 환경 변수로 설정한다.

-JDK 8 설치할 경우 따로 하지 않아도 된다.

-개발에 사용하는 다양한 도구들이 JDK 설치를 자동으로 찾지 못할 경우 경로 알려줄 목적으로 사용한다.


4강. Apache Tomcat 설치


5강. 이클립스 설치/개발환경 구축

[웹 브라우저 설정] : 사용할 웹 브라우저를 설정한다.

-Window > Preferences

-Web Browser -> 크롬으로 설정

[Tomcat 9.0 설정]

-WIndow ->Proferences


6강. Spring MVC 소개

Spring Web MVC

  • Spring Web MVC는 서블릿 API 기반으로 만들어진 웹 프레임워크
  • Spring MVC 개발 방식은 (1) XML 이용한 방식 (2) 자바 설정 이용 방식
  • 스프링 MVC 프로젝트는 내부적으로 일반 JAVA 영역(POJO) 와 Web 영역을 모두 연동하여 구동함

MVC 개념

  • MVC(Model-View-Controller) 패턴

: 사용자 인터페이스와 애플리케이션 로직 분리하는 데 사용되는 패턴

🟧Model : 데이터 계층 (Java 클래스로 구성)

🟧Controller : 요청 처리 (서블릿으로 구성)

🟧View: 처리 결과를 보여줌 (JSP로 구성)

Model

  • 시스템의 비즈니스 로직을 포함하고, 애플리케이션 상태를 나타내는 ‘데이터 계층’

Controller

  • Controller 계층은 View와 Model의 중간 다리 역할
  • View 계층에서 요청을 받고, 필요한 유효성 검사를 포함하여 요청을 처리함
  • 요청은 데이터 처리를 위해 모델 계층으로 추가 전송되고, 일단 처리되면 데이터는 컨트롤러로 다시 전송된 다음 View에 표시된다.

View

  • 일반적으로 UI 형식. 컨트롤러가 가져온 모델 데이터 표시 용도로 사용된다.

Q. WebContent 나타나지 않을 경우 ? A. -> 이클립스 버전 업데이트 이후 바뀌었다. webapp 파일에 똑같이 작성하면 된다.

<중간에 Library 구조 에러 해결> https://dzzienki.tistory.com/66https://dzzienki.tistory.com/66

[Eclipse Dynamic Web Project로 Spring Maven 프로젝트 만들기

이번 포스팅에서는 STS 나 egovframework 를 사용하지 않고 이클립스에서 Dynamic Web Project 를 이용하여 Spring Maven 기반의 웹 프로젝트를 만들어 보도록 하겠습니다. 이 포스팅의 목적은 가장 기본적인

dzzienki.tistory.com](https://dzzienki.tistory.com/66)


 

 

 

 


7강. 프로젝트 공통 세팅

[동작방식]

[DispatcherServlet]

-Servlet/JSP에서 사용자 요청이 발생하면 이 요청 정보 해석 후 개발자가 만든 코드 동작시키는 첫 번째 서블릿이다.

-Spring MVC는 DispatcherServlet을 확대하여 Spring Framework가 가지고 있는 기능을 사용할 수있도록 이 클래스를 재정의하고 있다.

-따라서 Spring MVC 프로젝트 설정에서 가장 먼저 해야 하는 일은,

DispatcherServlet 클래스를 Spring MVC에서 재정의한 클래스로 설정하는 일이다.

[설정 방식]

-Spring MVC프로젝트 설정하는 방식에는 (1)XML 이용 방식과 (2) java코드 활용 방식

[프로젝트 설정의 공통 세팅 부분]

➀ Maven 프로젝트로 변경

➁ pom.xml에서 다음의 라이브러리 설정 : [servlet-api] [jsp-api] [jstl] pspringWebMVC]

[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>SpringMVCStep1</groupId>
    <artifactId>SpringMVCStep1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.1</version>
                <configuration>
                    <warSourceDirectory>WebContent</warSourceDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <!--  라이브러리 버전관리  -->
    <properties>
        <javax.servlet-version>4.0.1</javax.servlet-version>
        <javax.servlet.jsp-version>2.3.3</javax.servlet.jsp-version>
        <javax.servlet.jsp.jstl-version>1.2</javax.servlet.jsp.jstl-version>
        <org.springframework-version>5.2.2.RELEASE</org.springframework-version>
        <!--  <org.springframework-version>4.3.25.RELEASE</org.springframework-version>  -->
    </properties>

    <!--  라이브러리 셋팅  -->
    <dependencies>
        <!--  https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api  -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>${javax.servlet-version}</version>
            <scope>provided</scope>
        </dependency>
        <!--  https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api  -->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>${javax.servlet.jsp-version}</version>
            <scope>provided</scope>
        </dependency>
        <!--  https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl  -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>${javax.servlet.jsp.jstl-version}</version>
        </dependency>
        <!--  https://mvnrepository.com/artifact/org.springframework/spring-webmvc  -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
    </dependencies>
</project>

8강. [XML로 세팅]

[web.xml 설정]

-DispatcherServlet 클래스를 Spring에서 제공하는 클래스로 설정

[ApplicationContext 설정]

-spring MVC로 만든 웹 위한 설정 파일

[RootContext 파일 설정]

-spring MVC 프로젝트 수행 시 사용할 Bean들 정의한 파일

[파라미터 필터 설정]

-파라미터에 한글이 있을 경우 깨지지 않도록 하기 위해 인코딩 설정

[Controller 설정]

-app-context.xml파일에 Controller 찾을 수 있도록 설정

[JSP 설정]

-Controller 작성 수행 후 렌더링될 jsp 설정

[정적 파일 경로 설정]

-HTML에서 사용할 정적 파일들(이미지.사운드/js/css) 배치될 경로 지정


9강. Java로 세팅

[Java로 세팅]

-Spring MVC는 xml 뿐만 아니라 Java 클래스로도 설정이 가능하다.

web.xml -> AbstractAnnotationConfigDispatcherServletInitializer 상속 혹은 WebApplicationInitializer 인터페이스 구현 root-context.xml -> 상속없음 servlet-context.xml -> WebMvcConfigurer 인터페이스 구현

728x90