Model 1 > 직관적인 작업으로 작업속도가 빠르지만 같은 코드가 반복되고 분기작업을 하기 애매함.
Model 2
장점
- 코드간결
- 유지보수 용이
- 확장 용이 : 역할을 분리하였기 때문에 조합을 통해 확장하기가 용이함.
단점
- 초기 설정 작업이 MODEL1 보다 많아 작업 시간 오래 걸린다.
- 아키텍처에 관련한 이해도 필요 (분기작업에 대한 설계가 필요)
- 관리할 파일이 많아짐
Controller : servlet 위에서 url기준으로 분기작업. = front controller
Cotroller>Service>Dao
(FrameWork가 작업을 쉽게 도와줌)
Servlet
- 자바를 사용하여 웹을 만들기 위해 필요한 기술
- 웹페이지 등을 동적으로 생성하거나 데이터 처리를 수행하기 위해 자바로 작성된 프로그램
- Java Thread를 이용하여 동작한다 (was의 mainmethod 실행후의 thread)
- 자바로 구현 된 CGI (공통게이트웨이인터페이스)
* CGI (common gateway interface : 공통 게이트웨이 인터페이스)
-공통 게이트웨이 인터페이스(common gateway interface)의 약어로, 웹서버와 외부 프로그램 사이에서 정보를 주고받는 방법이나 규약
-웹서버는 요청에 의해 응답을 HTML로만 보여주기때문에 HTML만으로는 모든 정보를 다 처리 할 수가 없다. 따라서 요청과 응답에 따른 양방향으로 정보처리 하기 위해서는 외부 프로그램을 수행하여 그 결과를 HTML형태로 보여주는 방식인데 이것을 CGI라고 한다.
-넓은 의미로는 CGI를 수행하는 프로그램을 CGI라고 하기도 한다.
서블릿 동작 원리
was > servlet container : servlet의 객체화 및 종료
요청>request,respose생성>servlet분석>servlet검색(thread)> service >doGet ,doPost() 순환
서블릿 생명주기
- servlet 생명주기는 servlet container에서 관리하며, servlet의 생성과 소멸을 관리
- servlet이 소멸 후에 Garbage Collection에서 메모리 관리
- 메서드 실행 순서
- init() : 최초 1번 실행 시 (객체화 시) 실행
- sevice() : doGet(), doPost(), toDelete(), toPut()등 http환경으로 최적화 되어 분기되어 실행
- destroy() : 서블릿 제거 시 실행 1번 실행 (garbage collection 수행 시)
HttpServlet
- GenericServlet(추상클래스)을 상속받아 구현이 되었으며, http 환경에 맞도록 최적화(재가공) 됨
- doGet(), doPost() 메서드가 분기된 클래스직렬화 : 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환하는 기술
* 직렬화 : 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환하는 기술
'JSP' 카테고리의 다른 글
[Model2] 실습하기 (0) | 2020.05.13 |
---|---|
[Servlet] Servlet (0) | 2020.05.13 |
java servlet life cycle (0) | 2020.05.08 |
MVC model2 (2) | 2020.05.07 |