Legday

[Spring] 서블릿(Servlet)이란 ? 본문

Spring&Springboot/Spring(개인공부용)

[Spring] 서블릿(Servlet)이란 ?

Legday 2022. 12. 6. 17:57
서블릿(Servlet)을 알기전에 개발자가 서버를 구축할 때 어떤 것을 해야하는지 알아야한다. 서블릿(Servlet)은 개발자가 서버구축을 할때 편의성을 제공해준다.

1. 개발자가 서버를 구축할때 준비할것

 비즈니스 로직 실행을 빼고 모든 것을 서블릿이 지원해준다!!

  1. 서버 TCP/IP 대기, 소켓(Socket) 연결
  2. HTTP 요청 메시지를 파싱
  3. POST 방식, URL 인지
  4. Content-Type 확인
  5. HTTP 메시지 바디 내용 파싱
  6. 저장 프로세스 실행
  7. 비즈니스 로직 실행
    1. 데이터베이스에 저장 요청
  8. HTTP 응답 메시지 생성시작
  9. TCP/IP에 응답 전달, 소켓종료

2. 서블릿 코드

@WebServlet(name = "서블릿 이름", urlPatterns = "url 주소")
public class ServletTest extends HttpServlet(
	
    @Override
    protected void servie(HttpServletRequest request, HttpServletResponse response){
    	//애플리케이션 로직
    )
}
  • urlPatterns에 적혀있는 URL이 호출되면 밑에 코드가 실행된다.
  • request는 HTTP요청 정보를 편리하게 사용
  • response는 응답 정보를 편리하게 제공

3. 서블릿 컨테이너

  • Tomcat 처럼 서블릿을 지원하는 WAS를 서블릿 컨테이너라고 한다.
  • 서블릿 컨테이너에서 서블릿 객체는 싱글톤 패턴으로 관리되고, 동시 요청을 위한 멀티 쓰레드를 지원한다.
  • 웹브라우저(Client)가 WAS로 요청(Request)를 하면 url에 해당하는 서블릿 컨테이너에 접근하고 request, response객체를 이용하여 데이터를 응답해준다.