[Spring] MVC(1))
in Tech-Stack on Spring
spring MVC
spring์์ MVC ํจํด์ ์ ์ฉํ๋๋ก ํ์
1. ์ค๋นํ๊ธฐ
- maven project ์์ฑํ๋ค.
Create a simple projcet์ฒดํฌ ํ ๋๋จธ์ง๋ ์ด์ ์ค์ ๊ณผ ๋์ผํ๊ฒ ์งํํ๋ค.Packaging์war๋ก ๋ณ๊ฒฝํ ํfinish๋ฅผ ๋๋ฌ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ค.- pom.xml์์
<packaging>war</packaging>์ ํ์ธํ ์ ์๋ค.
- pom.xml์ dependency ์ถ๊ฐํ๋ค.
- ๊ธฐ์กด์ ์ฌ์ฉํ๋ sprimg framework์ ๋ํ ์ค์ ์ ์ถ๊ฐํ๋ค.
spring-webmvc,javax.servlet-api์ ๋ํ dependency๋ฅผ ์ถ๊ฐํ๋ค.- ์ ์ฅ ํ ํ๋ก์ ํธ๋ฅผ ์ฐํด๋ฆญํด์
Maven - Update Maven Project๋ฅผ ๋๋ฅธ๋ค.
- tomcat์ ์ฐ๊ฒฐํ๋ค.
Preferences - Server - Runtime Environments์์ tomcat์ ์ถ๊ฐํ๋ค.- ํ๋ก์ ํธ buildpath์
add library๋ก tomcat ์ถ๊ฐ
- web.xml์ ์์ฑ
- ํ๋ก์ ํธ ์ฐํด๋ฆญ ํ
javaEE Tools - Genenrate ~๋ฅผ ๋๋ฌ xml์ ์์ฑํ๋ค.
- ํ๋ก์ ํธ ์ฐํด๋ฆญ ํ
2. ์ปจํธ๋กค๋ฌ ์ค๋นํ๊ธฐ
- servlet์ฐ๊ฒฐํ๊ธฐ
- web.xml์์ ์๋ธ๋ ์ ์์ฑํ๊ณ ์ฐ๊ฒฐํ๋ค. ```xml
dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/root-context.xml /WEB-INF/spring/appServlet/servlet-context.xml 1 dispatcher / ```
/๊ฒฝ๋ก๊ฐ ์คํ๋ ๊ฒฝ์ฐ์ ์๋ธ๋ ์ด ์คํ๋๋ค.
- root-context.xml ์์ฑ
- controller bean ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค. ```xml
```
- examspring08 ํจํค์ง์ ์๋ HelloController๋ ๋ค์์ ์ ์ํ ์์ ์ด๋ค.
- servlet-context.xml ์์ฑ
- spring์์ ์ ๊ณตํ๋ mvc bean ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค. ```xml
```
<mvc:annotation-driven />-@Controller์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ์ฌ ์ปจํธ๋กค๋ฌ๋ฅผ ์ด์ํ๊ธฐ ์ํ ์ค์ <mvc:default-servlet-handler />- DispatcherServlet์ ๋งคํ ๊ฒฝ๋ก๋ฅผ /๋ก ์ค์ ์ ์น ์์ค๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ค์ <mvc:view-resolvers>- JSP๋ฅผ ์ด์ฉํ์ฌ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ์ค์ - controller๊ฐ ์คํ๋๋ฉด์ ๋ฐํ๋๋ ๋ฌธ์์ด์ prefix์ suffix ์ฌ์ด์ ๋ฃ์ด์ ์คํํ๋ค.
- ex. โindexโ๊ฐ ๋ฐํ๋๋ฉด /WEB-INF/views/index.jsp ๊ฐ ์คํ๋๋ค.
- ์ปจํธ๋กค๋ฌ ํด๋์ค ์์ฑํ๊ธฐ
- HelloController.java๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ๋ค. ```java import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;
@Controller public class HelloController {
@RequestMapping("/hello") public String hello() { System.out.println("/hello ์์ฒญ ์ฒ๋ฆฌ"); return "index"; } } ``` - `@Controller` ์ด๋ ธํ ์ด์ ์ ํตํด ์ปจํธ๋กค๋ฌ์์ ์ ์ธํ๋ค. - `@RequestMapping(url)` ์ด๋ ธํ ์ด์ ์ ํตํด ์ด๋ค url์ด ํธ์ถ๋์์ ๋ ๋ฉ์๋๋ฅผ ์คํํ ์ง ์ค์ ํ๋ค. - ๋ฐํ๊ฐ์ธ "index"๋ฅผ ํตํด ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ `/WEB-INF/views/index.jsp`์ ์ถ๋ ฅํ๋ค.
