서블릿을 하나에 모아 놓고 서블릿일 필요가 없는 것을 분리
분리된 컨트롤러를 호출 매번 호출 하게 되니 매번 호출 하지 않도록 코드 간략화
DispatcherServlet.java(수정 전)
모든 컨트롤러들이 DAO를 필요로 할까? 아니다.
임의적으로 모든 컨트롤러가 주입받게 했고(강제성),
컨트롤러에 따라서 DAO 종류가 다를 수도 있다.
컨트롤러가 만들어져야 디스패쳐 서블릿을 만들 수 있다(의존성 높음)
이에 sc에서 DAO를 가져왔지만
이제 sc에서 컨트롤을 가져오면 DAO를 가져올 필요가 없고
new 연산자가 사라지게 된다.
MemberListController.java
MemberDao가 필요하기 때문에
setMemberDao 메소드를 선언하여 주입을 위한 준비
MemberAddController.java
ContextLoaderListener.java
ㄱ. 공통 저장소 : DAO
ㄴ. 공통 저장소 : controller(+DAO)
27~30번 라인 줄인 것이 32번 라인
ServletContext에 "/member/list.do" "/member/add.do" 로
set 하게 되면 통일성을 갖게 됨
DispatcherServlet.java(수정 후)
controller = new MemberListController(); 를
controller = (Controller)sc.getAttribute("/member/list.do");
controller = new MemberAddController();를
controller = (Controller)sc.getAttribute("/member/add.do");
공통되는 부분이 있다.
controller = (Controller)sc.getAttribute(servletPath
'프로그래밍 > JavaWebProgramming' 카테고리의 다른 글
[Lesson06] 리플랙션 API를 이용 (0) | 2016.12.29 |
---|---|
[Lesson05] 리스너 (0) | 2016.12.21 |
[Lesson05] ListServlet DAO 분리 (0) | 2016.12.16 |