Hyunebee

스프링MVC - frontController(3) 본문

Spring/MVC

스프링MVC - frontController(3)

Hyunebee 2022. 1. 14. 14:22

Servlet 종속성 제거

Controller들을 보면 사용하지 않는 Servlet Request등 종속되어 있다. 실제로 코드에 사용하지 않는다.

이제는 요청 파라미터 정보는 자바의 Map을 사용해서 넘긴다. 이전에는 setAttribute를 모델처럼 사용했다 별도의 Model객체를 만들어서 사용한다.

 

뷰이름도 중복을 제거한다. 

/WEB-INF/views/new-form.jsp -> new-form 이렇게 사용할 것이다.

 

ModelView 지금까지 컨트롤러에서 서블릿에 종속적인 HttpServletRequest를 사용했다. 그리고 Model도 request.setAttribute() 를 통해 데이터를 저장하고 뷰에 전달했다. 서블릿의 종속성을 제거하기 위해 Model을 직접 만들고, 추가로 View 이름까지 전달하는 객체를 만들어보자

 

ModelView는

viewName을 flied로 가지고있고

HashMap을 통해 model를 받는 다 이때 String, Object인 이유는 다형성을 위해 Object를 사용

 

ControllerV3(Interface) : ModelView반환(Map<String, String>)

이제는 컨트롤러에서 Servlet기술을 사용하지 않게되었다.

 

MemberFormControllerV3(implements) : ControllerV3의 구현체

이제는 ModelView를 리턴해준다. 이때 인자는 "new-form" 논리적 이름을 명시해준다.

viewName = new-form

 

MemberSaveControllerV3(implements) : ControllerV3의 구현체

이제는 getRequestParmeter를 이용하지 않는다. Map에 정보가 담겨서 오게 된다.

이제는 ModelView를 리턴해준다. 이때 인자는 "save-result" 논리적 이름을 명시해준다.

생성한 ModelView에 생성한 member를 삽입해준다.

 

MemberListControllerV3(implements) : ControllerV3의 구현체

Save와 동일하게 작동한다.

 

 

FrontControllerServletV3 - 프론트 컨트롤러

 

 

 

 

'Spring > MVC' 카테고리의 다른 글

스프링 MVC - 스프링 MVC  (0) 2022.01.15
스프링MVC - frontController(4)  (0) 2022.01.14
스프링MVC - frontController(2)  (0) 2022.01.14
스프링MVC - frontController(1)  (0) 2022.01.14
스프링MVC - Servlet  (0) 2022.01.11