[Spring] MVC(1))


spring MVC

spring์—์„œ MVC ํŒจํ„ด์„ ์ ์šฉํ•˜๋„๋ก ํ•˜์ž

1. ์ค€๋น„ํ•˜๊ธฐ

  1. maven project ์ƒ์„ฑํ•œ๋‹ค.
    • Create a simple projcet ์ฒดํฌ ํ›„ ๋‚˜๋จธ์ง€๋Š” ์ด์ „ ์„ค์ •๊ณผ ๋™์ผํ•˜๊ฒŒ ์ง„ํ–‰ํ•œ๋‹ค.
    • Packaging์„ war๋กœ ๋ณ€๊ฒฝํ•œ ํ›„ finish๋ฅผ ๋ˆŒ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
    • pom.xml์—์„œ <packaging>war</packaging>์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. pom.xml์— dependency ์ถ”๊ฐ€ํ•œ๋‹ค.
    • ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ sprimg framework์— ๋Œ€ํ•œ ์„ค์ •์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
    • spring-webmvc, javax.servlet-api์— ๋Œ€ํ•œ dependency๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
    • ์ €์žฅ ํ›„ ํ”„๋กœ์ ํŠธ๋ฅผ ์šฐํด๋ฆญํ•ด์„œ Maven - Update Maven Project๋ฅผ ๋ˆ„๋ฅธ๋‹ค.
  3. tomcat์„ ์—ฐ๊ฒฐํ•œ๋‹ค.
    • Preferences - Server - Runtime Environments์—์„œ tomcat์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
    • ํ”„๋กœ์ ํŠธ buildpath์— add library๋กœ tomcat ์ถ”๊ฐ€
  4. web.xml์„ ์ƒ์„ฑ
    • ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ ํ›„ javaEE Tools - Genenrate ~๋ฅผ ๋ˆŒ๋Ÿฌ xml์„ ์ƒ์„ฑํ•œ๋‹ค.

2. ์ปจํŠธ๋กค๋Ÿฌ ์ค€๋น„ํ•˜๊ธฐ

  1. 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 /

    ```

    • /๊ฒฝ๋กœ๊ฐ€ ์‹คํ–‰๋œ ๊ฒฝ์šฐ์— ์„œ๋ธ”๋ ›์ด ์‹คํ–‰๋œ๋‹ค.
  2. root-context.xml ์ƒ์„ฑ
    • controller bean ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ```xml

    ```

    • examspring08 ํŒจํ‚ค์ง€์— ์žˆ๋Š” HelloController๋Š” ๋’ค์—์„œ ์ •์˜ํ•  ์˜ˆ์ •์ด๋‹ค.
  3. 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 ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.
  4. ์ปจํŠธ๋กค๋Ÿฌ ํด๋ž˜์Šค ์ƒ์„ฑํ•˜๊ธฐ
    • 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`์— ์ถœ๋ ฅํ•œ๋‹ค.
    





ยฉ 2022. by Yejin Ha

Powered by JihyunRyu