본문 바로가기
IT || 개발공부

[Servlet] 서블릿이란? (개념)

by saesong 2023. 2. 4.

9. 서블릿이란?

서블릿은 JSP가 나오기 이전에 썬마이크로즈시스템즈(Sum Microsystems)에서 동적인 웹페이지 콘텐트를 생성하는 기술로 제공되었다. 그래서 항상 JSP(2,3)보다는 서블릿(4.0)의 버전이 더 높다.
서블릿도 JSP와 마찬가지로 웹페이지에서 호출하여 실행결과를 브라우저를 통해 제공한다. 그러나 서블릿은 자바의 많은 장점들을 사용할 수는 있지만 HTML, CSS 및 자바스크립트 그리고 웹디자인과 연동하기에는 많은 단점이 있어 Sun사에서 JSP를 새롭게 만들어 제공하게 되었다. 이후로는 JSP가 서블릿에 비해 좀 더 쉽고 편하게 개발할 수 있기 때문에 많은 개발자들이 사용하게 되었다.

그러나 이러한 문제점과 단점이 있는 서블릿이 없어지지 않고 계속적으로 존재할 수 있는 이유는 크게 두가지이다. 첫 번째는 JSP에는 없는 서버 측 프로그램의 기능이 있다는 점과 두 번째는 대기업에서 사용하는 프레임워크의 기초 기술로 사용된다는 점이다. 그리고 서블릿과 비슷하지만 다른 점이 있는 애플릿(Applet)은 클라이언트 브라우저에 호출이 되면 클래스 파일이 클라이언트 PC로 다운로드되어 실행하는 클라이언트 측 프로그램이고 서블릿(Server + Applet의 약어)은 브라우저에서 호출이 되면 WAS(Tomcat)에서 웹페이지를 동적으로 생성하여 결과를 전송해주는 서버 측 프로그램이다.

■ 서블릿 맵핑 방식
서블릿을 실행하기 위해서는 브라우저에서 url상에 표시되는 서블릿의 가상의 이름을 설정해야 한다. 서블릿 맵핑을 만드는 이유는 클래스 이름으로 실행하기 위한 이름은 너무 길고 그리고 보안에 노출되어 있는 경로를 간단하게 표시하기 위해서이다. 서블릿 팹핑은 2가지 방법이 제공된다. 첫 번째는 web.xml에서 설정하는 방법이고, 두 번째는 서블릿 코드에 @WebServlet(어노테이션)으로 설정하는 방법이 제공된다.

9-1. 서블릿의 주요 클래스
서블릿에서 제공되는 주요 클래스에 대해 알아보자 모든 클래스를 다 살펴볼 수 없지만 기본적으로 알고 있어야 할 클래스에 대해서만 살펴보자.

(1) HttpServlet
HttpServlet 클래스는 서블릿을 만들기 위해 반드시 상속해야 할 필수 클래스이다. 존재 목적 자체가 서블릿을 만들기 위해 제공되는 클래스이다. 먼저 HttpServlet 클래스 상속 구조도를 살펴보겠다.
Servlet(인터페이스) - GenericServlet(추상클래스) - HttpServlet
이러한 상속 구조도 때문에 Servlet, GenericServlet 그리고 HttpServlet에서 제공도는 많은 메서드를 사용할 수 있다.

(2) HttpServletRequest
 HttpServletRequest 클래스는 클라이언트가 데이터를 입력하거나 또는 클라이언트의 정보에 대한 요청값을 가지고 있는 클래스이다.

(3) HttpServletResponse
HttpServletResponse 클래스는 클라이언트가 요청한 정보를 처리하고 다시 응답하기 위한 정보를 담고 있는 클래스이다.

(4) HttpSession
HttpSession 클래스는 클라이언트가 세션 정보를 저장하고 세션 기능을 유지하기 위해 제공되는 클래스이다.


댓글