온 코딩

MVC 패턴 본문

복습 ARCHIVE/모델별 프로젝트

MVC 패턴

SummerON 2021. 5. 26. 15:40

Model 2

 1. 기본형 : jsp + Servlet  => 외부와 내부 업무 분리

 2. jsp + Servlet + DTO +DAO  => 외부와 내부 및 데이터관련 업무 분리

 2. MVC : jsp + Action => Controller + DTO +DAO

장점 단점
- 출력코드와 자바코드 분리로 코드가 덜 복잡함
- 뷰, 로직처리에 대한 분업 용이
-기능별로 분리 => 유지보수 용이
- 구조가 복잡 
- 학습 필요
- 작업량이 많음

 

+ MVC 패턴

Model - View - Controller 패턴

 

MVC 패턴 Model2 역할
Model 자바빈 비즈니스 로직을 처리하는 모든 것 
컨트롤러로부터 특정 로직에 대한 처리요청이 들어오면, 
수행 후 결과를 컨트롤러에 반환
(Action.java)
View JSP페이지 클라이언트에게 출력되는 화면
요청 결과 출력, 컨트롤러에 요청 전송
Controller 서블릿 흐름제어
브라우저 요청 분석 후 모델 사용
모델로부터 받은 처리 결과 가공 후 view로 전달
(forward)

 

MVC 모델

 

1. 자동 응답 처리 과정

web.xml 문서를 통해 index.jsp가 어플리케이션 실행 시 자동 응답되도록 설정

 

최초요청시 : 

1) index.jsp

2) index_jsp.java 변환

3) index_jsp.java => index_jsp.class 컴파일

4) index_jsp.class => 객체로 생성 => 객체 내부에 출력 내용을 

5) 요청한 웹 브라우저로 응답 

 

그 이후 :

4) index_jsp.class => 객체로 생성 => 객체 내부에 출력 내용을

5) 요청한 웹 브라우저로 응답 

 

오류(500)가 발생하는 곳 : 3. index_jsp.java => index_jsp.class 컴파일 할 때 !

 

1. 웹 브라우저 > 애플리케이션 요청 

2. 애플리케이션 굿동 >web.xml문서 로딩 (내부 오류 발생 시 404)

3. web.xml 문서 내부 => <welcom-file-list> => <welcom-file>index.jsp</welcom-file>

4. index.jsp 응답 > 웹브라우저 

5. 웹브라우저 (index.jsp) > response.sendRedirect > 요청 

6. BoardServlet > doGet() > 요청처리 

7. 해당 페이지 응답

 

 


웹 형태 작업

1. 자바 : 웹 지원 안됨

 

자바 웹 

 

2.(model1) html, jsp -> 사용자 화면, 내부처리 함께

 : 각 파일마다 사용자화면 내부처리가 필요

3. (model2) jsp/servlet 

 : 사용자화면, 내부처리 역할을 분리해서 사용

4.jsp/servlet/dto/dao

: 사용자화면, 내부처리 (데이터베이스 / 처리) 역할을 분리

   jsp 요청 => servlet

5. (model2 - MVC) jsp요청 -> servlet -> 요청내용목록 -> ListAction:처리

                             -> 요청내용삭제 -> DeletAction : 처리 등

6. Spring MVC 

jsp => 요청 => Servlet => MappingHandler =>"list" or "update" etc.

                      Servlet => Controller=> ListController

                                                  => UpdateController 등..

                      Servlet => ViewResolve=> 화면 관련 "파일명" =>위치/.jsp

                      Servlet=>view=>list.jsp

                                            update.jsp

                      Servlet=>웹브라우저

7. Spring MVC + Persistant(myBatix)=>xml

8. Spring AOP : 공통 모듈 개발 

 

Comments