--MVC(model 2)
Web Application 설계방식
-
모델1 설계방식
--jsp가 너무 많은 일들을 해서 문제가 발생했다.
비즈니스와 뷰를 구분해야 한다.
-JSP만 이용하여 개발하는 경우
-JSP + Java Bean을 이용하여 개발하는 경우

-장점
-
개발속도가 빠름
-
개발자의 기술적인 숙련도가 낮아도 배우기 쉬워 빠르게 적용 가능
-단점
-
JSP페이지에서 프레젠테이션 로직과 비즈니스 로직이 혼재되어 복잡
-
로직의 혼재로 인해 개발자와 디자이너의 작업분리가 어려움
-
JSP코드의 복잡도로 인해 유지보수가 어려워짐
-
모델2 설계방식 ( 주로 사용[x])
-Application의 역할을 Model - View - Controller로 분리
-
Model : Business Logic - Java Bean으로 구현
-
Business Service(Manager) : Business Logic의 workflow를 관리
-
DAO(Data Access Object) : Database와 연동하는 Business Logic을 처리
-
View : Client에게 응답을 처리 : JSP로 구현
-
Controller : Client의 요청을 받아 Model과 View사이에서 일의 흐름을 조정
-
Servlet으로 구현
-
Client의 요청을 받아 Client가 보낸 Data를 읽고 검사함
-
Model에게 Business Logic을 요청
-
Model의 처리 결과에 맞는 View에게 응답을 요청

-장점
-
비즈니스 로직과 프로젠테이션의 분리로 인해 어플리케이션이 명료해지며 유지보수와 확장이 용이함
-
디자이너와 개발자의 작업을 분리해 줌
-단점
-
개발 초기에 아키텍처 디자인을 위한 시간의 소요로 개발 기간이 늘어남
-
MVC 구조에 대한 개발자들의 이해가 필요함
=> 그래서 추후에 Spring이 나옴
Spring의 장점
-
경량 컨테이너 - 객체의 라이프 사이클 관리, JEE구현을 위한 다양한 API제공
-
DI ( Dependency Injection) 지원
-
AOP ( Aspect Oriented Programming) 지원
-
POJO (Plain Old Java Object) 지원
-
JDBC를 위한 다양한 API지원
-
Transaction 처리를 위한 일관된 방법제공
-
다양한 API와의 연동 지원
***MVC(Web Dynamic Project)
MVC model2
-Controller : 요청받기(서블릿) - URL => 식별 InsertForm.do => InsertFormAction
MVC/board/insertForm.do
--index.html
--MyController
--Action.java(interface)
--ActionForward.java (어떤뷰페이지로 갈건지 결정하는 역할)
--InsertActionForm.java
--insert_form.jsp
client -> controller(servlet) : doProcess -> action인터페이스만들기(execute메소드 ) -> 각각의 action 호출 (action ->service호출)
dispatch : 요청 - 비즈니스 값 데려옴 - 값 호출
redirect(새로운요청) : 글 - 수정 - controller(sevlet이동) .do 데이터 값 가지고-jsp이동
servlet이 모든 요청을 받음 controller-a,b,c 처리
jsp는 뷰 구현용으로만 사용
listBoardService -> dao -> mybatis -> db
MyController(do 작성) ->action설정 -> BoardService -> dao -> mybatis -> db
'FULLSTACK > SERVLET&JSP' 카테고리의 다른 글
SERVLET&JSP 7차시 - CRUD self로 구현해보기 (0) | 2020.11.13 |
---|---|
SERVLET&JSP 6차시 - 페이징처리, 검색, 파일, 이미지 (0) | 2020.11.13 |
SERVLET&JSP 5차시 - 쿠키, 세션 (0) | 2020.11.13 |
SERVLET&JSP 4차시 - memberCRUD 복습, 동적쿼리, 익스프레션언어, JSTL(EL태그) (0) | 2020.11.13 |
SERVLET&JSP 3차시 - CRUD(JSP, MYBATIS) (0) | 2020.11.13 |