//Google AdSense

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에서 메모리 관리
  • 메서드 실행 순서
    1. init() :  최초 1실행 시 (객체화 시) 실행
    2. sevice() : doGet(), doPost(), toDelete(), toPut()  http환경으로 최적화 되어 분기되어 실행
    3. 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

+ Recent posts