가희의자기개발블로그
스프링 MVC 본문
★ 스프링 MVC
스프링 MVC도 컨트롤러를 사용하여 클라이언트의 요청을 처리한다
스프링에서 DispatcherServlet 이 MVC에서 C(Control) 부분을 처리한다.
개발자가 처리할 부분은 클라이언트의 요청을 처리할 컨트롤러와 응답화면을 전송할 JSP나 Velocity 템플릿 등 뷰 코드이다
DispatcherServlet, HandlerMapping, ViewResolver등은 스프링이 기본적으로 제공하는 구현 클래스를 사용한다.
스프링 MVC의 구성 요소
1. DispatcherServlet
클라이언트의 요청을 전달 받는다
컨트롤러에게 클라이언트의 요청을 전달하고 Controller가 리턴한 결과값을 View에 전달하여 응답을 생성하도록 한다.
2. HandlerMapping
클라이언트의 요청 URL을 어떤 Controller가 처리할지를 결정한다
3. Controller
클라이언트의 요청을 처리한 뒤 결과를 DispatcherServlet에 알려준다
4. ModelAndView
컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담는다.
5. ViewResolver
컨트롤러의 처리 결과를 생성할 뷰를 결정한다.
6. View
컨트롤러의 처리 결과 화면을 생성한다.
JSP나 Velocity 템플릿 파일등을 뷰로 사용한다.
위 그림에서 보면 DispatcherServlet이 Control를 한다. 이건 스프링이 자체적으로 제공을 하고 있기 때문에 따로 만들어 줄 필요가 없다. Controller는 자바파일의 역할을 한다. 즉, Model의 역할을 한다. 이전에 공부했을때 Servlet은 properties를 참고해 어떤 자바파일과 연결될지 알았다. 하지만 Spring은 HandlerMapping를 두어서 *.properties역할을 해주기 때문에 .properties를 따로 만들어 주지 않아도 된다.
그렇기 때문에 우리는 Controller(자바파일)만 만들면 된다.
이 자바파일에서 우리는 항상 request.setAttribute()으로 jsp파일을 넘겨주었다. 이제 Spring에서는 ModelAndView 객체(이 메소드 말고도 jsp를 넘겨줄 수 있는 다른 메서드들이 존재하지만, 주로 이 객체를 사용한다.)에 담아서 보내줘야 한다.
View를 뿌려줄때, 지금까지 우리는 jsp로만 뿌려줬다. 하지만 Spring에서는 우리가 원하는 것 html, xml,jsp 등등 ViewResolver의 도움으로 원하는 것을 뿌려줄 수 있다.
다시 정리하자면,,
Controller - Model
DispatcherServlet - Control
View - view
이제는 command.properties를 안써준다 Spring에서 다 연결해 주기 때문
그러면 어떻게 알고 연결해 줄까?
@Controller
class AAA{
}
class BBB{
}
가 있을 때 이 두 클래스가 연결 되고 싶으면 @Controller라는 써주면 @Controller가 적혀 있는 파일만을 비교 한다. @Controller는 또한 @Component를 지원해 주기 때문에 더이상 안써줘도 된다!
'백엔드 > Spring' 카테고리의 다른 글
스프링과 JDBC (0) | 2020.07.15 |
---|---|
스프링 AOP -관점지향 프로그램 (0) | 2020.07.14 |
DI(Dependency Injection) (0) | 2020.07.10 |
eclipse -STS설치후 안켜지는 오류 (0) | 2020.07.08 |
Spring Framework (0) | 2020.07.08 |