728x90

 

 

--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

 

728x90

+ Recent posts