Spring

Servlet

Anoi 2023. 6. 3. 01:16

Servlet


정적인 컨텐츠에만 응답할 수 있던 웹서버에 프로그램을 붙여

WAS에서 동적 웹페이지 구현을 할 수 있도록 도와주는 자바 클래스의 일종이다. (프로그래밍 기술)

 

  • 서블릿은 웹에서의 수많은 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해주는 기술
  • MVC 패턴에서의 컨트롤러로 이용된다.
  • HTML 변경 시 Servlet을 재 컴파일해야 하는 단점이 있다.

 

서블릿 생성주기

  • init(): 서버가 켜질 때 한번만 실행
  • service: 모든 유저들의 요청들을 받는다.
  • destroy(): 서버가 꺼질 때 한번만 실행

 


서블릿 컨테이너


서블릿을 담고 관리해주는 컨테이너

구현되어 있는 servlet 클래스의 규칙에 맞게 서블릿을 관리한다.

클라이언트에서 요청을 하면 컨테이너는 HttpServletRequest, HttpServletResponse 두 객체를 생성하며 post, get여부에 따라 동적인 페이지를 생성하여 응답을 보낸다.

 

 


서블릿 동작 과정


  1. 사용자가 URL을 클릭하면 HTTP Request를 Servlet Container에 보낸다.
  2. Servlet Container는 HttpServletRequest, HttpServletResponse 두 객체를 생성한다.
  3. 사용자가 요청한 URL을 분석하여 어느 서블릿에 대한 요청인지 찾는다.
  4. 컨테이너는 서블릿 service()메소드를 호출하며, POST/GET 여부에 따라 doGet() 또는 doPost()가 호출된다.
  5. doGet()이나 doPost() 메소드는 동적인 페이지를 생성한 후 HttpServletResponse 객체에 응답을 보낸다.
  6. 응답이 완료되면 HttpServletRequest, HttpServletResponse 두 객체를 소멸시킨다.