정적 웹 페이지의 문제점을 보완하여 나온 것이 동적 웹 페이지를 구현하는 JSP라고 했다. 그러나 사실 동적 웹 페이지를 처음으로 구현한 방법은 JSP가 아니었다. 초기 동적 웹 페이지들은 이 장에서 배울 서블릿(Servlet, 자바로 만든 CGI 프로그램)을 이용해서 구현했다.
그리고 이 서블릿의 문제점을 보완하여 나온 것이 JSP이다. JSP의 많은 기능은 서블릿의 기능을 따르므로 서블릿을 먼저 이해하고 나면 JSP를 좀더 수월하게 이해할 수 있을 것이다. 실제 웹 애플리케이션을 개발할 때도 JSP와 서블릿이 각자의 고유한 역할을 나누어 기능을 구현하고 있다. 이 장에서는 서블릿에 대한 기본적인 내용을 실습을 통해 알아보겠다.
5.1 서블릿이란??
서블릿은 서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스이다. 서블릿은 자바로 작성되어 있으므로 자바의 일반적인 특징을 모두 가진다. 하지만 서블릿은 일반 자바 프로그램과 다르게 독자적으로 실행되지 못하고 톰캣과 같은 JSP/Servlet 컨테이너에서 실행된다는 점에서 차이가 있다.


서블릿은 서버에서 실행되다가 웹 브라우저에서 요청을 하면 해당 기능을 수행한 후 웹 브라우저에 결과를 전송한다. 서버에서 실행되므로 보안과 관련된 기능도 훨씬 안전하게 수행할 수 있다.
그림 5-2에 서블릿의 동작 과정을 나타내었다.

클라이언트가 웹 서버에 요청하면 웹 서버는 그 요청을 톰캣과 같은 웹 애플리케이션 서버(WAS)에 위임한다. 그러면 WAS는 각 요청에 해당하는 서블릿을 실행한다. 그리고 서블릿은 요청에 대한 기능을 수행한 후 결과를 반환하여 클라이언트에 전송한다.
그럼 서블릿은 어떤 기능이 있는지 알아보자. 그림 5-2를 보면 단순히 고정된 정보를 브라우저에 보여주는 용도는 웹 서버로도 충분하다. 그러나 쇼핑몰 화면에 실시간으로 변하는 상품의 할인 가격을 보여주려면 상품의 할인 가격을 데이터베이스에서 가져오는 기능이나 직접 계산하는 기능이 필요하다. 따라서 그런 기능을 서버 쪽에서 서블릿이 처리해 주면 상품 할인 가격 표시처럼 웹 페이지에서 동적으로 변하는 정보를 효과적으로 다룰 수 있다.
그 외 서블릿은 다음과 같은 특징이 있다.
• 서버 쪽에서 실행되면서 기능을 수행합니다.
• 기존의 정적인 웹 프로그램의 문제점을 보완하여 동적인 여러 가지 기능을 제공합니다.
• 스레드 방식으로 실행됩니다.
• 자바로 만들어져 자바의 특징(객체 지향)을 가집니다.
• 컨테이너에서 실행됩니다.
• 컨테이너 종류에 상관없이 실행됩니다(플랫폼 독립적).
• 보안 기능을 적용하기 쉽습니다.
• 웹 브라우저에서 요청 시 기능을 수행합니다.
'스프링 부트 > 자바 웹을 다루는 기술' 카테고리의 다른 글
| 5.3 서블릿의 생명주기 메서드 (0) | 2024.01.17 |
|---|---|
| 5.2 서블릿 API 계층 구조와 기능 (0) | 2024.01.17 |
| 4.1 웹 애플리케이션 (0) | 2024.01.16 |
| 2.4 JSP 프로그램의 특징 (0) | 2024.01.16 |
| 2.3 동적 웹 프로그래밍 (0) | 2024.01.16 |