-
스프링 MVC기반의 웹 프로그래밍이란?
우선 MVC란 Model View Controller를 말한다.
브라우저와 데이터 베이스 사이에 WAS 웹 어플리케이션 서버 안에서
Controller와 Service, DAO, 그리고 View를 구분하여 설정할 수 있다고 해서
MVC 라고 부른다.
기존의 Html 파일 안에 자바 등 여러 코드를 한 번에 넣는 것보다 더 유지보수가 편하고 구분이 되어 개발자가 분리해서
설정하기 쉽다는 장점이 있다.
스프링 MVC 프레임 워크 설계 구조의 순서와 정의를 보면
브라우저(클라이언트)에서 요청을 하면
DispatcherServlet 클래스에서 요청을 받는다.
여기서 HandlerMapping 값을 줘서
HandlerMapping에서는 Controller에서 가장 적합한 Controller를 선택한다.
다시 DispatcherServlet으로 와서 HandlerAdapter에 요청을 처리한다.
HandlerAdapter는 Controller 안에 많은 기능 메서드들이 있는데 그 중 가장 적합한 메서드를 찾아준다.
그 결과 Model 이라는 값을 다시 갖고와서 DispatcherServlet에 보내준다.
그리고 DispatcherServlet에서 ViewResolver 사용자에게 보여줄 View를 선택하기 위해서 ViewResolver에 보낸다.
그리고 DispatherServlet으로 보내서
선택된 View를 생성토록 View에 보내어 브라우저 (클라이언트)에게 JSP로 View하게 해주는 것이다.
그렇다면 DispatcherServlet이 중요하다는 것을 알 수 있는데
web.xml에서 DispatcherServlet을 설정할 수 있다.
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>ore.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/<.url-pattern>
으로 DispatcherServlet과 스프링 설정 파일을 설정할 수 있다.
이 DispactherServlet에는 HandlerMapping, HandlerAdapter, ViewResolver 가 들어있기에
개발자는 Controller , View 만 설정하면 된다.
일단 Controller를 설정하기 위해서
스프링 설정 파일.xml에서
<annotation-driven/> 을 입력하고
Controller객체로 사용할 클래스에
@Controller를 입력하면 그 클래스는 Controller 객체로 사용한다.
Controller에서 필요한 기능을
@RequestMapping을 통해서 맵핑 시켜줄 수도 있다
예를 들어서
@RequestMapping("/Controller")
public String success(Model model){
return "Controller";
}
로 기능을 갖고 올 수 있다.
여기서 Controller에서 Model과 View를 꺼낼 수 있기에
model.setAttribute("속성", "값")을 설정할 수 있다.
즉, Model 객체에 값을 넣어서 DispatcherServlet에 전달 할 수 있다.
마지막으로 개발자가 설정가능한 영역인 View는
맵핑에서 리턴한 값과 하나의 빈 객체에
InternalResourceViewResolver를 클래스로 입력한 빈에
프로퍼티로 prefix와 suffix를 name으로 준 두 개의 빈 객체를 받아서
.jsp 방식으로 만들면된다.
'JSP&스프링 > 스프링 키포인트' 카테고리의 다른 글
[스프링] Service 와 DAO 객체를 만들고 어노테이션으로 사용해보는 예시문 만들기 (0) 2023.01.30 [스프링] Controller와 view를 사용하여 로그인 key- value 값 연동하는 연습문 만들기 (0) 2023.01.29 [스프링] @Configuration & @Bean 애노테이션의 정의와 예시문 정리하기 (0) 2023.01.28 [스프링] 스프링 컨테이너와 빈 객체의 생명주기와 생명주기를 나타내는 용어 정리하기 (0) 2023.01.28 [스프링] @Autowired로 의존 객체를 선택해야 하는 경우의 방법과 특징 정리하기 (0) 2023.01.28 댓글