서블릿을 왜 써야하는가 ?

 

HTTP, 비지니스 로직을 처음부터 구성하는 경우

- TCP/IP 연결 대기, 소켓 연결

- HTTP 요청 메시지 파싱해서 읽기

- URL 인지

- Content-Type 확인

- 비지니스 로직 실행

- HTTP 메시지 바디 / 응답 메시지 생성

 

등 위와 같은 코드를 직접 다 써야합니다.

하지만 서블릿을 사용하는 경우 비지니스 로직을 제외한 모든 기능을 다 지원해줍니다.

 

 

 

서블릿 특징

- Url 에 /hello 를 치면 위 코드가 호출되어 서블릿 코드가 실행되게 됩니다.

- HttpServletRequest : HTTP 요청 정보를 편리하게 사용할 수게 해줌

- HttpServletResponse : HTTP 응답 정보를 편리하게 제공할 수 있게 해줌

- 개발자는 service 에 비지니스 로직만 작성함으로써 HTTP 스펙을 편리하게 사용함

 

 

 

서블릿 동작 과정

1) 웹 브라우저에서 localhost:8080/hello 

2) Url 에 HTTP 요청메시지 전송 ( response / request )

3) 서블릿 컨테이너에서 HTTP 요청을 실행

4) 종료와 동시에 웹 브라우저에 reponse 응답 메시지 전송

 

 

 

HTTP 요청시 발생하는 과정들

1) WAS : Reponse / Request 객체 만들어 서블릿 객체 호출

2) 개발자 : Request 객체에서 HTTP 요청 정보 꺼내서 사용

3) 개발자 : Reponse 객체에 HTTP 응답 정보 입력

4) WAS : Reponse 깨체에 담겨 있는 내용으로 HTTP 응답 정보 생성

 

 

 

서블릿 컨테이너

- 서블릿 객체를 생성, 초기화, 호출, 종료하는 생명주기 관리

- 서블릿 객체는 싱글톤으로 관리

  • 고객이 요청올 때마다 계속 객체를 생성하는 것은 비효율
  • 최초 로딩 시점에 서블릿 객체를 미리 만들어두고 재활용
  • 모든 고객 요청은 동일한 서블릿 객체 인스턴스에 접근
  • 공유 변수 사용
  • 서블릿 컨테이너 종료시 함께 종료

- JSP 도 서블릿으로 변환되어서 사용

- 동시 요청을 위한 멀티 쓰레드 처리 지원

'스터디' 카테고리의 다른 글

백엔드에서의 HTML, HTTP 간단한 요점  (0) 2022.11.24
멀티 쓰레드  (0) 2022.11.24
빈 스코프  (0) 2022.08.11
스프링 컨테이너  (0) 2022.08.11
UML 작성법  (0) 2022.08.10

+ Recent posts