서블릿은 서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스이다.
서블릿은 자바로 작성되어 있으므르 자바의 일반적인 특징을 모두 가진다.
하지만 서블릿은 일반 자바 프로그램과 다르게 독자적으로 실행되지 못하고 톰캣과 같은 JSP/Servlet 컨테이너에서 실행된다.
서블릿은 서버에서 실행되다가 웹 브라우저에서 요청을 하면 해당 기능을 수행한 후 휍 브라우저에 결과를 전송한다.
서버에서 실행되므로 보안과 관련된 기능도 훨씬 안전하게 수행할 수 있다.
단순히 고정된 정보를 브라우저에 보여주는 용도는 웹 서버로도 충분하다.
그러나 실시간으로 변하는 정보를 데이터베이스에서 가져오는 기능이나 직접 계산하는 기능이 필요할경우에는 서버 쪽에서 서블릿이 처리해주면 실시간으로 정보를 웹페이지에서 효과적으로 다룰 수 있다.
<서블릿의 특징>
∙ 서버 쪽에서 실행되면서 기능을 수행한다.
∙ 기존의 정적인 웹 프로그램의 문제점을 보완하여 동적인 여러가지 기능을 제공한다.
∙ 스레드 방식으로 실행된다.
∙ 자바로 만들어져 자바의 특징(객체지향)을 가진다
∙ 컨테이너에서 실행된다.
∙ 컨테이너 종류에 상관없이 실행된다.(독립적 플랫폼)
∙ 보안 기능을 적용하기 쉽다.
∙ 웹 브라우저에서 요청 시 기능을 수행한다.
서블릿 API는 Servlet과 ServletConfig 인터페이스를 구현해 제공하며 GenericServlet 추상 클래스가 이 두 인터페이스의 추상 메소드를 구현한다. 그리고 이 GenericServlet을 다시 HttpServlet이 상송받는다.
서블릿 구성 요소 | 기능 |
Servlet (interface) |
∙ javax.servlet 패키지에 선언되어 있다. ∙ Servlet 관련 추상 메소드를 선언 ∙ init(), service(), destory(), getServletInfo(), getServletConfig()를 선언 |
ServletConfig (interface) |
∙ javax.servlet 패키지에 선언되어 있다. ∙ Servlet 관련 추상 메소드가 선언되어 있음 ∙ getInitParameter(), getInitParameterNames(), getServletContext(), getServletName()이 선언되어있음 |
GenericServlet (abstract class) |
∙ javax.servlet 패키지에 선언되어 있다. ∙ 상위 두 인터페이스를 구현하여 일반적인 서블릿 기능을 구현한 클래스 ∙ GenericServlet을 상속받아 구현한 사용자 서블릿은 사용되는 프로토콜에 따라 각각 service()를 오버라이딩 해서 구현한다. |
HttpServlet (abstract class) |
∙ javax.servlet.http 패키지에 선언되어 있다. ∙ GenericServlet을 상속받아 http 프로토콜을 사용하는 웹 브라우저에서 서블릿 기능을 수행한다. ∙ 웹 브라우저 기반 서비스를 제공하는 서블릿을 만들 때 상속받아 사용한다. ∙ 요청 시 service()가 호출되면서 요청 방식에 따라 doGet() 이나 doPost()가 차례대로 호출된다. |
'Web > JSP' 카테고리의 다른 글
이클립스 Run On Server [Choose an existing server] 비활성화 돼있을 때 (0) | 2022.01.31 |
---|---|
Servlet의 세가지 기능 (0) | 2022.01.31 |
세션(Session)과 쿠키(Cookie) (0) | 2022.01.25 |
자바빈(Java Bean) (0) | 2022.01.21 |
자바빈을 이용한 회원가입 폼 작성 (0) | 2022.01.21 |