SPRING

Spring MVC Project 생성 및 설정(2)

보겸삼촌 2019. 7. 2. 11:08

# 개발환경

os : Windows10 Pro 64-bit

jdk : jdk-1.8.0_181

tomcat : 8.0.53

tool : eGovFrame 3.8

 

이전 글에서 Spring MVC Project 생성과 관련된 방법을 다룸. 이 글은 그 다음에 이어서 설정을 해야하는 부분과 간단하게 출력까지 해보는 것을 목표로 함

 

[이전 글]

https://bogyum-uncle.tistory.com/31

 

Spring MVC Project 생성 및 설정(1)

Spring MVC Project 생성하기 # 개발환경 os : Windows10 Pro 64-bit jdk : jdk-1.8.0_181 tomcat : 8.0.53 tool : eGovFrame 3.8 1. 프로젝트 생성 1.1. New > Dynamic Web Project 1.2. 설정 - Project name :..

bogyum-uncle.tistory.com

 

 

1. tomcat server 생성

 

  Servers 탭 > No servers are available. 클릭

 

 

  tomcat 버전이 v8.0.53이므로 v8.0 Server를 선택하고 Next 

 

 

   Available 에 있는 demo_proj를 클릭하고 Add > 버튼을 클릭해서 우측으로 옮김

 

   Finish 버튼

   

   Project Explorer 탭에 Servers가 생성 됨

 

 

 

 

2. tomcat > web.xml 수정

 

 

   - 기존

 

  - 수정

 

 

  

  DispatcherServlet은 프론트 컨트롤러로 모든 요청을 받아들이는 Servlet

즉, 앞에서 모든 요청('/')을 스프링이 받아들인 후 요청URL에 대응되는 컨트롤러를 찾아가 서비스를 실행

 

 

 

3. spring-serlvet.xml (스프링 컨테이너 환경설정) 수정

 

  - 스프링 컨테이너

    : 객체들을 관리하는 bean Factory

 

  - web.xml에서 DispatcherServlet을 매핑한 servlet-name > 위에서 spring으로 설정함

 

 

  3.1. spring-servlet.xml 파일 생성

 

   다음 경로에 spring-servlet.xml 파일을 생성

> 프로젝트 > webapp > WEB-INF

  webapp 디렉토리 위에서 마우스 우측 클릭 > New > Other...

 

 

  3.2. spring-servlet.xml 수정

 

    # spring-servlet.xml

 

   - 기존 

<?xml version="1.0" encoding="UTF-8"?>

   - 수정

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc.xsd    http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd    http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd    http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">

	<context:annotation-config />
	<context:component-scan
		base-package="com.demo.proj.controller" />
</beans>

 

  - context:annotation-config 

   > 어플리케이션 어딘가에 이미 등록된 bean의 annotation 해석 및 활성화

      : @Autowired, @Qualifier

   > 스프링 컨테이너가 객체를 관리하는 방식(어딘가에 생성된 객체를 가져다 씀)

 

  - context:component-scan

   > 어노테이션 스캔 및 활성화

      : @Component, @Repository, @Service, @Controller, @RestController, @Configuration 등

 

   - base-package

   > 스캔할 영역

 

 

 

* 이렇게 에러가 발생할 수 있음. 아래 단계를 밟으면 사라짐

 

 

 

 

4. controller 패키지 생성

 

  src/main/java 디렉토리 마우스 우측클릭 > New > Package

 

 

  패키지 이름을 다음과 같이 설정한 이유는 바로 위에서 spring-servlet.xml 파일에서 스캔 범위인 base-package를 com.demo.proj.controller라고 작성했기 때문

 

 > annotation-scan은 base-package로 작성한 패키지 내에서만 이루어 지므로 패키지 이름이 다르면 스캔을 하지 않음

 

 

5. Controller 생성

 

  다음 경로에 컨트롤러를 생성

> 프로젝트/src/main/java/com/demo/proj/controller

 

해당 디렉토리에서 우측 마우스 클릭 > New > Other... > Class

 

 

 

  5.1. HelloController.java 수정

 

   - 기존

package com.demo.proj.controller;

public class HelloController {

}

 

   - 변경

package com.demo.proj.controller;

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

@Controller
public class HelloController {
	@RequestMapping("/hello")
	public String hello() {
		return "/WEB-INF/views/hello.jsp";
	}
}

 

  > 클래스 선언부 위에 @Controller를 작성하면 스프링은 이 클래스를 컨트롤러로 인식

    > 모든 요청을 받아들이는 DispatcherServlet이 특정 요청을 처리할 수 있도록 @Controller이 작성된 클래스 읽기

    > 그 클래스의 어노테이션 중 @RequestMapping 어노테이션 읽기

    > 특정 URL이 왔을 때, 어떤 메시지를 실행할지 Mapping

 

 

  > @Controller : 스프링이 해당 클래스를 컨트롤러라고 인식

  > @RequestMapping : URL과 메서드의 매핑

 

 

 

6. view 작성 (jsp)

 

  6.1. 해당 경로에 디렉토리 생성

> 프로젝트/WEB-INF

   위 디렉토리에서 우측 마우스 클릭 > New > Folder > views 생성

 

 

  6.2. 해당 경로에 jsp 파일 생성

> 프로젝트/WEB-INF/views

 

   위 디렉토리에서 우측 마우스 클릭 > New > JSP File 생성

 

 

  6.3. hello.jsp 작성

 

   - 기존

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

</body>
</html>

 

   - 변경

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h2>Hello World!!!</h2>
</body>
</html>

 

 

  : HelloController 클래스에서 hello() 메서드의 return으로 view 페이지 경로를 문자열로 반환했기 때문에 해당 경로에 hello.jsp 파일을 만든 것

 

  > ViewResolver 라는 객체를 이용한 것

 

 

 

7. Tomcat Server 실행

 

 

8. 브라우저에서 확인

 

> localhost:8080/프로젝트이름/hello