[JSP] 2. Servlet이란?



이번 포스트에는 JSP와 붙어다니는 Servlet에 대해서 정리해보자
생각 날 때마다 정리하는게 좋은거다.



2-1. Servlet이란?


웹 프로그램을 개발하기 위해 Java로 만든 표준 규약을 Servlet이라고 한다.


서블릿 초기화 과정

what-servlet s1

  1. 클라이언트의 Request방식(GET/POST))에 따라
  2. WAS는 정적 문서는 바로 반환하고 동적인 문서는 Servlet, JSP로 전환
  3. 톰캣과 같은 WAS 가 java 파일을 컴파일해서 Class파일 생성
  4. 메모리에 올려 Servlet 객체를 만듬
  5. Servlet 객체는 doPost, doGet을 통해 요청에 Response합니다.


서블릿 생명주기

what-servlet s2

  • init은 서블릿이 메모리에 최초 한번 로드 될때 실행
  • 서블릿은 javax.servlet.http 패키지에 준비되어 있는 HttpServlet 클래스를 상속하여 만든다.
  • Request가 오면 HttpServletRequest, HttpServletResponse 두 객체를 생성
  • service 메소드는 HTTP Method 타입에 따라 doGet 혹은 doPost를 호출
  • doGet/doPost메소드는 동적인 페이지를 생성
  • HttpServletResponse 객체에 Response한다.
  • 응답이 완료 되면 HttpServletRequest, HttpServletResponse 두 객체를 삭제
  • destory는 서버를 내릴 때 수행되는 콜백


잠깐 여기서 HTTP에 대해서 얘기하면 HTTP는 TCP프로토콜에 기초한 어플리케이션 계층 프로토콜이다.
웹 서비스를 위해 웹 서버와 클라이언트가 통신하는 규약에 따라 서버가 응답한 후에 서버는 클라이언트의 상태를 유지하지 않는다.

그래서 Cookie나 Session 등으로 상태를 유지한다.

하여튼, Servlet은 웹프로그래밍에서 WAS를 통해 컴파일 된 후 동작하는 Java 프로그래밍 기술이다.



출처