서블릿 (Servlet)

dana·2021년 11월 8일
0

backend

목록 보기
3/7
post-thumbnail

서블릿

자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양

WAS에 동작하는 JAVA클래스
자바를 사용하여 웹을 만들기 위해 필요한 기술

  • 클라이언트가 어떠한 요청을 하면 그에 대한 결과를 다시 전송해주는 역할을 하는 자바 프로그램
    JSP는 HTML 문서안에 Java코드를 포함하고 있는 반면, 서블릿은 자바 코드안에 HTML을 포함

서블릿의 특징

  • 클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트
  • HTML을 사용하여 요청에 응답
  • Java Thread를 이용하여 동작
  • MVC 패턴에서 컨트롤러로 이용
  • HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속받는다.

서블릿의 동작 방식

  1. 사용자(클라이언트)가 URL을 입력하면 HTTP Request가 Servlet container로 전송
  2. 요청을 전송받은 Servlet container는 HttpServletRequest, HttpServletResponse 객체를 생성
  3. web.xml(배포기술자)을 기반으로 사용자가 요청한 URL이 어느 서블릿에 대한 요청인지 찾기
  4. 해당 서블릿에서 service 메소드를 호출한 후 클라이언트의 GET,POST 여부에 따라 doGet(), doPost() 호출
  5. doGet(), doPost() 메소드는 동적 페이지를 생성한 후 HttpServletResponse 객체에 응답 전송
  6. 응답이 끝나면 request와 response 객체를 소멸

서블릿의 생명 주기

HttpServlet에는 세가지 메소드가 있음
init() , service(request, response), destroy()

각각의 메소드들은 한번에 계속 실행되는게 아니라 생명주기에 따라 실행됨.

WAS는 서블릿 요청을 받으면 해당 서블릿이 메모리에 있는지 확인합니다.

if (메모리에 없음) {

 - 해당 서블릿 클래스를 메모리에 올림

 - init() 메소드를 실행

}
 - service()메소드를 실행

was가 종료되거나, 웹 어플리케이션이 새롭게 갱신될 경우 destroy() 메소드가 실행됩니다.
-> 단순히 새로고침 되는경우 service() 메소드만 반복해서 수행

service(request, response) 메소드

HttpServlet의 service메소드는 템플릿 메소드 패턴으로 구현합니다.
클라이언트의 요청이 GET일 경우에는 자신이 가지고 있는 doGet(request, response)메소드를 호출
클라이언트의 요청이 Post일 경우에는 자신이 가지고 있는 doPost(request, response)를 호출

profile
PRE-FE에서 PRO-FE로🚀🪐!

0개의 댓글