본문 바로가기
JAVA SPRING

서블릿(Servlet) 이란?

by 앙헬디마리아 2021. 6. 4.
728x90

서블릿(servlet)이란?

 

간단히 말해서, 서블릿이란 자바를 사용하여 웹을 만들기 위해 필요한 기술이다. 그런데 좀더 들어가서 설명하면

클라이언트가 어떠한 요청을 하면 그에 대한 결과를 다시 전송해주어야 하는데, 이러한 역할을 하는 자바 프로그램이다.

 

스프링MVC-웹애플리케이션이해 김영한

 

우리는 보통 회원가입을 할때 POST 방식으로 데이터를 전달한다.

 

이렇게 서버로 보내진 데이터는 Web Application Server로 이동을하게 되고, WAS에서 아래와 같은 일을 모두 처리한다.

 

• 서버 TCP/IP 연결 대기, 소켓 연결

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

• POST 방식, /save URL 인지

• Content-Type 확인

• HTTP 메시지 바디 내용 피싱

• username, age 데이터를 사용할 수 있게 파싱

• 저장 프로세스 실행

• 비즈니스 로직 실행

• 데이터베이스에 저장 요청

• HTTP 응답 메시지 생성 시작

• HTTP 시작 라인 생성

• Header 생성

• 메시지 바디에 HTML 생성에서 입력

 

위의 흐름에서 중요한 부분은 빨간색 글씨 부분이다. 사실 저 부분이 제일 중요한 부분이지만 그 밖에 다른 처리들을 WAS가 대신 처리해 주고 있다. 만약 WAS가 없었다면.. 위의 모든 부분을 다 개발자가 해야한다.

 

 

servlet 예제 최근방식의 Servlet

urlPatterns(/sphong) 의 URL이 호출되면 sphongService로직 실행

HTTP요청과 응답정보를 편리하게 사용할 수 있는 HttpServletRequest, HttpServletResponse

개발자는 요청과 응답 정보를 이용하여 로직에 집중할 수 있다.

 

 

스프링MVC-웹애플리케이션이해 김영한

 

Servlet에서 HTTP 요청 응답 흐름

 

웹 브라우저에서 /hello 혹은 /sphong 이라는 url을 호출하게 되면 WAS는 Request, Response 객체를 하나 생성하여 서블릿 객체를 호출한다. -> 개발자는 Request 객체에서 HTTP 요청 정보를 꺼내서 사용하고 Response 객체에서 HTTP 응답 정보를 입력한다. -> WAS는 Response 객체에 담겨있는 내용으로 HTTP 응답 정보를 생성한다. 

 

 

스프링MVC-웹애플리케이션이해 김영한

Tomcat과 같은 서블릿을 지원하는 WAS를 서블릿 컨테이너 라고 부른다.

 

서블릿 컨테이너는 Servlet객체의 라이프사이클(생성, 호출, 관리)를 해준다.

 

서블릿객체는 싱글톤으로 관리된다. 

• 고객의 요청이 올 때 마다 계속 객체를 생성하는 것은 비효율

• 최초 로딩 시점에 서블릿 객체를 미리 만들어두고 재활용

• 모든 고객 요청은 동일한 서블릿 객체 인스턴스에 접근

• 공유 변수 사용 주의

• 서블릿 컨테이너 종료시 함께 종료

 

JSP도 서블릿으로 변환 되어서 사용된다. 

 

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

 

 

 

 


참고


https://mangkyu.tistory.com/14

 

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

1. Servlet(서블릿) 서블릿을 한 줄로 정의하자면 아래와 같습니다.  클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 간단히 말해

mangkyu.tistory.com

 

728x90

'JAVA SPRING' 카테고리의 다른 글

싱글톤 패턴(Singleton Pattern)  (0) 2021.07.17
JUnit 5  (0) 2021.06.27
@Transactional  (0) 2021.06.03
Spring WebFlux란?  (0) 2021.05.29
Spring Version( 스프링 버전 별 특징, 차이)  (2) 2021.05.25