서블릿

SHByun·2023년 1월 18일
0

강의 chap1-2


서블릿

1. HTML Form 데이터 전송

  • POST 전송으로 데이터 저장
  • 클라이언트가 전송 버튼을 누르면 오른쪽의 메시지를 웹 브라우저가 생성해서 서버로 보낸다.
  • 만약 WAS를 직접 처음부터 다 구현한다면 http 요청 메시지를 다 파싱해서 읽는다.
  • Content-type 확인
  • http 메시지 바디 내용 파싱
  • 비즈니스 로직 실행 -> 데이터베이스에 저장 요청
  • http 응답 메시지 생성
  • 중요한 비즈니스 로직 실행을 위한 전후 단계가 너무 복잡하다.
    -> 서블릿이 나온 배경
  • 서블릿은 비즈니스 로직 실행을 제외한 나머지를 전부 생성해준다.

2. 서블릿

  • 클라이언트로부터 url이 넘어오면 service라는 애플리케이션 로직이 실행된다.
  • extends HttpServlet만 사용하면 애플리케이션 로직만 작성하면 된다.
  • HttpServletRequest : http 메시지(요청 정보)를 편리하게 사용할 수 있게 해준다.
  • HttpServletResponse : http 응답 메시지를 편리하게 제공할 수 있도록 해준다.

3. 전체 그림

  • 클라이언트가 Localhost:8080/hello로 요청
  • 요청된 http 메시지를 기반으로 request, response 객체 생성
  • 객체를 파라미터로 하여 helloServlet 실행해준다.
  • response 객체를 바탕으로 응답 메시지를 만든다.
  • 웹 브라우저에 응답 메시지를 보낸다.

4. 서블릿 컨테이너

  • WAS 안에는 서블릿 컨테이너가 있다.
  • 서블릿 객체를 서블릿 컨테이너가 자동으로 생성, 초기화, 호출해준다.
  • WAS가 종료될 때 서블릿도 종료해준다.(생명주기 관리)
  • Ex) 톰캣
  • 서블릿 객체는 싱글톤(객체를 하나만 만들고 다 공유해서 쓰는 것)으로 관리된다.
    -> 고객의 요청이 올 때마다 객체를 생성하는 것은 비효율적이기 때문이다.
    -> 최초 로딩 시점에 서블릿 객체를 싱글톤으로 만들어두고 재활용한다.
    -> 모든 고객 요청은 동일한 서블릿 객체 인스턴스에 접근한다.
    -> 따라서, 공유 변수 사용 주의해야 한다.
  • JSP(추후에 설명)도 서블릿으로 변환 되어서 사용된다.
  • 멀티 쓰레드 처리(동시 요청) 지원한다.

출처

인프런 강의 - 김영한
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard

profile
안녕하세요

0개의 댓글