Servlet 과 JSP 의 차이
Servlet의 생명주기
서블릿의 생명주기는 서블릿이 deployed 되어 있는 컨테이너에 의해 관리된다.
컨테이너는 다음과 같은 단계로 동작하는데
1. 서블릿 인스턴스가 존재하지 않을 경우
a. 서블릿 클래스를 로딩한다.
b. 서블릿 클래스 인스턴스를 생성한다.
c. init() 메서드를 호출해서 서블릿 인스턴스를 초기화 한다.
2. service() 메서드가 호출, request와 response 객체를 넘겨준다. service() 메서드는 클라이언트 요청에 따라 doGet() 또는 doPost() 메서드를 호출.
마지막으로 서블릿을 컨테이너에서 제거할 땐 destroy() 메서드를 호출한다.
JSP의 생명주기
1. 컨테이너는 .jsp 파일을 서블릿 파일을 만들기 위한 .java 소스 파일로 변환합니다.
2. 컨테이너는 .java 파일을 컴파일하여 .class 파일로 만듭니다.
3. 컨테이너는 새로 생성된 서블릿 클래스를 메모리로 로딩합니다.
4. 컨테이너가 서블릿을 인스턴스화하면 인스턴스 jspInit() 메서드가 실행됩니다. 이 객체는 클라이언트 요청을 처리할 수 있는 완전한 서블릿으로 거듭나게 됩니다.
5. 요청이 들어올 때마다 컨테이너는 새로운 스레드를 만들어 _jspService() 메서드를 실행합니다.
참고
http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets4.html
http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets7.html
Head First Servlet&JSP




