스프링 MVC

KimSeonGyu·2023년 7월 4일
0

SpringFramework(공부)

목록 보기
3/7
post-thumbnail

스프링 MVC

  • 스프링 프레임워크로 웹 애플리케이션을 개발할 때 MVC 패턴을 적용할 수 있도록 하는 프레임워크이다.
  • 스프링 프레임워크를 많이 활용하는 웹 애플리케이션 개발 환경에서 사용되는 모듈
  • 국내에서는 스프링 프레임워크와 스프링 MVC를 기반으로 하는 전자정부 표준 프레임워크가 공공 프로젝트에서 표준으로 사용
  • 스프링 프레임워크를 이용한다고 하면 스프링 MVC 프로젝트인 경우가 대부분이다.



스프링 MVC 동작구조

  1. 클라이언트의 요청은 Front-Controller인 DispatcherServlet 객체를 통해서 처리한다. 프로젝트의 web.xml파일을 보면 모든 요청은 DispatcherServlet에서 받도록 되어있다.

  2. HandlerMapping 객체는 요청을 처리할 Controller를 찾는다. 적절한 Controller를 찾으면 HandlerAdapter 객체를 통해 Controller 를 실행

  3. Controller는 개발자가 작성하는 클래스로, 실제 요청을 처리한다. 이때 View에 전달해야 하는 데이터는 Model 객체에 담아 전달. Controller는 다양한 자료형의 결과를 반환할 수 있는데, 이에 대한 처리는 ViewResolver 객체가 담당

  4. ViewResolver 객체는 Controller가 반환한 결과를 어떤 View를 통해 처리할지 결정, 가장 많이 사용하는설정은 servlet-context.xml파일에 정의된 InternalResourceViewResolver이다.

  5. View는 응답할 데이터를 JSP 등을 이용해 생성, 만들어진 응답은 DispatcherServlet객체를 통해 전송




스프링MVC 컨트롤러

  • HandlerAdapter를 통해 컨트롤러가 실행, 컨트롤러는 비즈니스 로직을 처리
  • 컨트롤러의 실행이 끝나면, HandlerAdapter를 통해 DispatcherServlet에게 모델과 뷰를 전달 이때 HandlerAdapter는 DispatcherServlet에게 ModelAndView 객체를 전달한다.
  • 컨트롤러는 HttpServletRequest 객체나 HttpServletResponse 객체를 사용하지 않고 필요한 기능을 구현할 수 있다.
  • 다양한 자료형의 매개변수를 처리할 수 있고, 다양한 자료형의 데이터를 반환할 수 있다.
  • GET, POST 방식 등 전송 방식에 대한 처리를 주해(annotation)로 처리
  • 상속이나 인터페이스를 이용하지 않고, 주해로 필요한 설정을 할 수 있다.
  • 관례적으로 ~Controller 라는 이름으로 클래스를 생성
profile
공부한 내용을 작성하는 블로그 입니다. 수정할 부분이 있다면 편하게 댓글 작성부탁드립니다!

0개의 댓글