๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Spring

Spring mvc ์„ค๊ณ„๊ตฌ์กฐ

Spring mvc

Spring mvc ์„ค๊ณ„

jsp & servlet์—์„œ ํ™•์žฅ๋œ ๊ตฌ์กฐ

์Šคํ”„๋ง์— ๋Œ€ํ•œ ์„ค๊ณ„๊ตฌ์กฐ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ์กด jsp&servlet๊ณผ ๋‹ค๋ฅด๊ฒŒ DispatcherServlet, HandlerMapping, HandlerAdapter, ViewResolver๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

DispatcherServlet

ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญ์„ ํ•˜๋ฉด DispatcherServlet๋กœ ์š”์ฒญ์ด ์ „๋‹ฌ๋˜๋ฉฐ, HandlerMapping, HandlerAdapter, ViewResolver ์ˆœ์œผ๋กœ ์š”์ฒญ์„ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค.

HandlerMapping(ํ•ธ๋“ค๋Ÿฌ๋งคํ•‘)

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ฐพ์•„์ค€๋‹ค.

javaํŒŒ์ผ์—์„œ @Controller ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ถ™์—ฌ์ฃผ๋ฉด ํ•ธ๋“ค๋Ÿฌ๋งคํ•‘์ด ์ฐพ์•„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

HandlerAdapter(ํ•ธ๋“ค๋Ÿฌ์–ด๋Žํ„ฐ)

ํ•ธ๋“ค๋Ÿฌ๋งคํ•‘์—์„œ ์ฐพ์€ ์ปจํŠธ๋กค๋Ÿฌ ์•ˆ์—์„œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ฐพ์•„์ค€๋‹ค.

javaํŒŒ์ผ์—์„œ @RequestMapping(value="url ๊ฒฝ๋กœ", method= get/post ๋ฐฉ์‹)์˜ ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ์„ค์ •ํ•ด์ค€๋‹ค.

ViewResolver

์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ returnํ•œ jspํŽ˜์ด์ง€๋ฅผ ํ•ด๋‹น๊ฒฝ๋กœ/return๊ฐ’.jsp๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ์–ด ์š”์ฒญ์— ๋งž๋Š” ์ฒ˜๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•  view ํŽ˜์ด์ง€๋ฅผ ์„ ํƒํ•ด์ค€๋‹ค.

example

DB ์ž๋ฃŒ๋ฅผ ์ฝ์–ด๋‚ด๋Š” ๊ฐ€์ƒ์˜ viewDB๋ฅผ ์˜ˆ๋ฅผ๋“ค์–ด ๋งŒ๋“ค์–ด๋ณด์ž.

@Controller // ํ•ธ๋“ค๋Ÿฌ๋งคํ•‘์ด ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ์ปจํŠธ๋กค๋Ÿฌ์ž„์„ ์•Œ๋ ค์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜ ์‚ฌ์šฉ
public class viewDB{

    @RequestMapping(value="/view", method= RequestMethod.GET)
    // ํ•ธ๋“ค๋Ÿฌ์–ด๋Žํ„ฐ๊ฐ€ ์ฐพ์•„์ค„ ์ˆ˜ ์žˆ๋„๋ก ๋ฉ”์„œ๋“œ์ž„์„ ์•Œ๋ ค์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜ ์‚ฌ์šฉ(url๊ฒฝ๋กœ๋Š” /view์ด๊ณ  GET๋ฐฉ์‹(์ƒ๋žต๊ฐ€๋Šฅ)์ž„)
    public String view(Model model){ // ๋ชจ๋ธ๊ฐ’์„ ์ธ์ž๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
        model.setAttribute("view","viewValue"); // ์‘๋‹ต์œผ๋กœ ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ(๋ชจ๋ธ)

        return "view"; // ViewResolver์— ์˜ํ•ด view.jsp๋กœ ๋ณ€ํ™˜
    }
}