MVC - (Model View Controller)

HandlerMapping과 같이 <<spring bean>>이 표시된 것은 스프링 빈으로 등록되는 것을 표현한 것(View의 경우는 직접 구현해서 스프링 빈으로 등록하기도 한다.) 회색으로 표시된 부분은 직접 구현해주는 부분이다.

스프링 MVC를 사용하기 위한 기본 설정
- web.xml에 DispatcherServlet설정
- web.xml에 캐릭터 인코딩 처리를 위한 필터 설정
- 스프링 MVC설정
- HandlerMapping, HandlerAdapter설정
- ViewResolver 설정
DispatcherServlet 서블릿 설정
DispatcherServlet는 스프링 MVC 프레임워크의 중심이 되는 서블릿 클래스이다.
웹 브라우저의 요청을 DispatcherServlet가 받게 되며, DispatcherServlet의 관련 컴포넌트를 이용해서 웹 브라우저의 요청을 처리한 뒤 결과를 전송하게 된다.

DispatcherServlet를 등록 DispatcherServlet는 내부적으로 스프링 컨테이너를 생성하는데, contextConfigLocation 초기화 파라미터를 이용해 컨테이너를 생성할 때 사용할 설정 파일을 지정한다. (mvc-quick-start.xml)

컨트롤러는 클라이언트의 요청을 처리하는 기능을 제공 웹 브라우저가 hello주소로 요청을 하게되면 helloa()메서드를 이용해 해당 요청을 처리하게끔한다.

리턴이되는 hello를 파일 뷰로 사용하기위해 스프링 MVC설정을 진행하고 해당 JSP는 EL(표현언어로) hello를 사용하게끔한다.

- <mvc:default-servlet-handler> - DispatcherServlet가 처리하지 못한 요청을 DefaultServlet에게 넘겨주는 역할 *.do, *.css와 같은 컨트롤러에 매핑되어있지 않은 URL요청은 DefaultServlet에 전달되어 처리되게끔하는 역할이다. DispatcherServlet의 매핑이 "/"로 지정이 되었기에 JSP를 제외한 모든요청이 DispatcherServlet로 넘어가 오류가 나기에 DefaultServlet가 *.do, *.css 등 해당요청이 이오면 URL을 처리하도록 한다.(다른 스프링MVC설정파일을 추가로 걸어줄때)
- <mvc:annotation-driven> - Annotation기반의 Controller호출이나 필요한 bean(객체)설정을 편리하게 하기위해 만들어졌다. (자동으로 RequestMappingHandlerMapping, RequestMappingHandlerAdapter 두 클래스를 빈으로 등록해주고 해당 클래스는 @Controller 어노텐션이 적용된 클래스를 컨트롤러로 사용할 수 있도록 해준다.)
결과 :

짜투리 : HttpServletRequest로 받아온 값으로 인사말을 변경해보자.

form action으로 hello요청을 시키고 메소드는 POST방식
text input으로 변경될 정보를 작성하고
submit input으로 값을 전송한다.

Http전송 방식을 지정할수있게 RequestMethod속성을 임포트
ReqeustMapping으로 요청을 받아서 hellob가 동작되게한다.
HttpServletRequest를 통해 정보를 불러오고 ,
getParameter으로 String 타입에 정보를 넣어준다.
다시 model로 hi이름으로 a를 대입시키고 리턴한다.
'Java > SPRING' 카테고리의 다른 글
스프링 [Spirng] XML 및 JSON 이란? (0) | 2022.01.15 |
---|---|
스프링 [Spirng] ViewResolver 인터페이스란 (0) | 2022.01.15 |
스프링 [Spirng] AOP(Aspect Oriented Programming) 개념 정리 및 주요 용어 (0) | 2022.01.11 |
스프링 [Spirng] Environment를 이용한 프로퍼티 란 (0) | 2022.01.11 |
스프링 [Spirng] 빈 생명주기 (빈 라이프사이클, 빈 범위)란 (0) | 2022.01.10 |