티스토리 뷰





반응형

서블릿의 실행 과정

1. init() 호출

-컨테이너에서 서블릿 객체를 생성한 다음에 호출한다. service() 이전에 실행

-서블릿 객체를 초기화

-초기화할 내용(DB 접속 등)이 있는 경우 재정의

 

2. service() 호출

-클라이언트의 요청 후 컨테이너에서 쓰레드를 이용하여 호출

-요청의 HTTP 메소드(GET, POST)를 참조하여 해당 메소드(doGet(), doPost()) 호출 판단

-거의 재정의 하지않음

 

3. doGet() / doPost() 호출

-service() 메소드에서 HTTP 메소드(GET, POST)를 참조하여 호출

-비즈니스 로직을 구현 또는 호출

-두 메소드 중 하나는 반드시 재정의하여 구현해야한다.

 

4. destroy() 호출

-컨테이너에서 서블릿 객체를 제거할 때 호출한다. 거의 웹 애플리케이션을 종료할 때

-서블릿 객체 초기화 및 실행 도중에 할당한 자원을 제거

-init() 메소드를 재정의하였거나 제거할 자원이 있는 경우 재정의

서블릿 로딩 & 초기화

컨테이너 시작 시 배포된 웹 애플리케이션 및 서블릿을 확인

로딩 : 컨테이너 시작 시 로딩 또는 최초 클라이언트 요청 시 로딩

초기화 : 서블릿 로딩 후 init() 호출하여 서블릿을 초기화 함.

 

service() 메소드는 서블릿 초기화 완료 후에 실행 가능함.

 

서블릿 객체는 초기화 과정을 통해 컨테이너로부터 서블릿 자격을 부여 받음

 

init() / destroy() 메소드 재정의

서블릿 일생에서 한번만 실행되어야 할 코드는 서블릿 클래스 안에 init()메서드와 destroy()메서드를 선언하고 그 안에 쓴다.

컨테이너는 서블릿 클래스를 로딩한 후에 서블릿 클래스의 init(ServletConfig config) 메서드를 호출하여 초기화한다.

init(ServletConfig config) 메서드에서 init() 메서드를 호출한다.

 

service() 메서드 실행

컨테이너의 클라이언트 요청 실행 과정

HttpServletRequest

-요청 유형, 쿠키, 세션 등 HTTP 요청에 대한 인터페이스를 추상화한 것으로 HTTP 요청 접근 관련 메소드 포함

멱등 - 아무 부작용 없이 동일한 작업을 한번 이상 계속 할 수 있다는 것을 의미

 

HttpServletResponse

-서블릿에서 클라이언트에 응답 데이터를 보내기 위해 HttpServletResponse 객체를 사용

HTTP 요청 리다이렉트 & 디스패치

클라이언트 요청을 받은 서블릿(또는 JSP)가 직접 처리하지 않고 클라이언트 요청을 다른 사이트로 넘기는 것

 

Redirect

클라이언트 요청에 대해 완전히 다른 URL로 방향을 바꾸어 처리하는 동작, 서블릿 리다이렉트는 웹 브라우저가 처리

 

Dispatch

URL이 바뀌지않고 서버의 다른 컴포넌트(Servlet or JSP)에게 넘겨 처리하도록 동작

 

 

 

출처 : http://www.hanbit.co.kr/store/books/look.php?p_code=B5476653696

 

뇌를 자극하는 JSP & Servlet

흔히 마주치는 수많은 웹 페이지들은 어떻게 만들고 운영되고 있는 것일까? 이 책은 이 질문에 대한 해답과 함께 JSP, Servlet을 활용해 다양하고 실용적인 웹 페이지를 구성하는 방법을 알려준다. 기본적인 JSP와 Servlet의 기초 개념부터 쿠키와 세션, 각종 액션 등의 다양한 내용은 물론 시스템 설계와 좋은 UI 구성까지 모두 담아냈다. 또한 최신 버전과 서비스 경향을 반영한 생생한 예제를 하나하나 따라하며 실습해 볼 수 있도록 구성했다. 때문

www.hanbit.co.kr

 

 

 

반응형
댓글
반응형
최근에 달린 댓글
글 보관함
Total
Today
Yesterday
최근에 올라온 글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30