매일 매일 미라클 코딩

서블릿 Servlet 본문

BackEnd

서블릿 Servlet

뚜벅-뚜벅 2021. 2. 7. 19:32

서블릿이란?

웹 프로그래밍 기술로 , 클라이언트의 요청에 따른 결과를 다시 전송해주는 역할을 하는 자바 프로그램. 

사용자가 요청한 시점에 페이지를 생성해 전달하는 '동적'페이지 구현에 필요함

 

ex) 로그인 시 아이디와 비밀번호를 입력하고, 로그인 버튼을 누른다

-> 이 때 클라이언트의 아이디와 비밀번호를 확인하고, 다음 페이지를 띄워주는 역할을 수행하는 것이 바로 서블릿(Servlet). 

서블릿의 특징
  • 클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트

  • html을 사용하여 요청에 응답한다.

  • Java Thread를 이용하여 동작한다.

  • MVC 패턴에서 Controller로 이용된다.

  • HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속받는다.

  • UDP보다 처리 속도가 느리다.

  • HTML 변경 시 Servlet을 재컴파일해야 하는 단점이 있다.

 

서블릿의 동작 방식 

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

 

서블릿의 생명주기

서블릿은 5개의 인터페이스를 갖고있는데 
init / service / destroy / getServletInfo / getServletConfig 
 -> 이 다섯 메소드를 서블릿의 생태주기라고 한다

init : 서블릿 실행시 호출
service : 서블릿의 역할, 주요 기능 처리
destroy : 서블릿 소멸 

*새로고침하면 init은 호출 안되고 service가 다시 호출된다. 즉 서비스중에는 객체가 살아있다.