# 개발환경 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
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 |
'SPRING' 카테고리의 다른 글
[Spring] MVC, 동작원리, 개발순서 (0) | 2021.01.27 |
---|---|
[Spring] AOP란 (0) | 2021.01.27 |
spring mvc 개념 (0) | 2019.07.02 |
Spring MVC Project 생성 및 설정(1) (0) | 2019.06.30 |