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>