Spring

스프링 MVC

kenzi 2022. 4. 6. 13:24

스프링 MVC의 주요 구성 요소 

 

1) DispatherServlet 

클라이언트의 요청을 전달받는다 

Controller에게 클라이언트의 요청을 전달하고 Controller가 리턴한 결과값을 

View에 전달하여 알맞은 응답을 생성하도록 한다

2) HandlerMapping 

클라이언트의 요청 URL을 어떤 Controller가 처리할지 결정한다 

3) Controller 

클라이언트의 요청을 처리한 뒤 그 결과를 DispathcerServlet 에게 알려준다 

4) ModelAndView

Controller가 처리한 결과정보 및 뷰 선택에 필요한 정보를 담는다

5) ViewResolver 

Commander의 처리 결과를 보여줄 View를 결정한다

6) View

Commander의 처리 결과를 보여줄 응답을 생성한다

 

 

 

 

 

 

 

package controller;

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

@Controller //@Component와 같은 기능 하지만 requestMapping까지 할 수 있음 
public class HelloController {
	
	@RequestMapping("hello.do")
	public String hello(Model model) {
		model.addAttribute("greeting", "안녕하세요");// request 역할
		return "hello"; //mvc-start.xml에 있는 viewResolver에 의해서 "/WEB-INF/view/"+ hello +".jsp"가 붙은 jsp가 나온다 
	}

}

RequestMapping으로 url에 hello.do가 들어오면 

hello로 리턴해주는데 

ViewResolver의 prefix와 surfix에 의해서 

/WEB-INF/view/hello.jsp로 리턴해준다 

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
	xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mvc = "http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/mvc
	http://www.springframework.org/schema/spring-mvc.xsd">
	
	
	<bean id = "viewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name = "prefix" value = "/WEB-INF/view/" />
		<property name = "suffix" value = ".jsp" />
	</bean>
	<bean class = "controller.HelloController" />
	
	
</beans>