티스토리 뷰
Servlet
- 초기 동적 웹 페이지들은 서블릿을 이용해서 구현했다.
- JSP의 많은 기능은 서블릿의 기능을 따른다.
- 서블릿은 서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스이다.
- 독자적으로 실행되지 못하고 톰캣과 같은 JSP/Servlet 컨테이너에서 실행된다.
- 서블릿의 특징
- 서버 쪽에서 실행되면서 기능을 수행한다.
- 기존의 정적인 웹 프로그램의 문제점을 보완하여 동적인 여러 가지 기능을 제공한다.
- 스레드 방식으로 실행된다.
- 자바로 만들어져 자바의 특징(객체 지향)을 가진다.
- 컨테이너에서 실행된다.
- 컨테이너 종류에 상관없이 실행된다(플랫폼 독립적).
- 보안 기능을 적용하기 쉽다.
- 웹 브라우저에서 요청 시 기능을 수행한다.
계층 구조
- 서블릿은 자바로 만들어졌으므로 당연히 클래스들 간의 계층 구조를 가진다.
- 서블릿 API는 Servlet과 ServletConfig 인터페이스를 구현해 제공하면 GenericServlet 추상 클래스가 이 두 인터페이스의 추상 메서드를 구현한다.
- 이 GenericServlet을 다시 HttpServlet이 상속받는다.
서블릿 API
서블릿 구성 요소
|
기능 |
Servlet 인터페이스 |
- javax.servlet 패키지에 선언되어 있다.
- Servlet 관련 추상 메서드를 선언한다. - init(), service(), destroy(), getServletInfo(), getServletConfig() 를 선언한다. |
ServletConfig 인터페이스 | - javax.servlet 패키지에 선언되어 있다. - Servlet 기능 관련 추상 메서드가 선언되어 있다. - getInitParameter(), getInitParameterNames(), getServletContext(), getServletName()이 선언되어 있다. |
GenericServlet 클래스 | - javax.servlet 패키지에 선언되어 있다. - 상위 두 인터페이스를 구현하여 일반적인 서블릿 기능을 구현한 클래스이다. - GenericServlet을 상속받아 구현한 사용자 서블릿은 사용되는 프로토콜에 따라 각각 service()를 오버라이딩해서 구현한다 |
HttpServlet 클래스 | - javax.servlet.http 패키지에 선언되어 있다. - GenericServlet을 상속받아 HTTP 프로토콜을 사용하는 웹 브라우저에서 서블릿 기능을 수행한다. - 웹 브라우저 기반 서비스를 제공하는 서블릿을 만들 때 상속받아 사용한다. - 요청 시 service()가 호출되면서 요청 방식에 따라 doGet()이나 doPost()가 차례대로 호출된다. |
- GenericServlet은 일반적인 여러 통신 프로토콜에 대한 클라이언트/서버 프로그램에서 서블릿 기능을 구현하는 클래스이다.
- HttpServlet은 이 GenericServlet을 상속받는다.
- HttpServlet은 HTTP 프로토콜을 사용하는 서블릿 기능을 구현하는 클래스이다.
생명 주기
- 서블릿도 자바와 같이 실행하면 초기화 과정, 그리고 메모리에 인스턴스를 생성하여 서비스를 수행한 후
다시 소멸하는 과정을 거친다.
- 각 과정에서 호출되어 기능을 수행하는 메서드들이 서블릿 생명주기 메서드이다.
- 서블릿 생명주기 메서드란, 서블릿 실행 단계마다 호출되어 기능을 수행하는 콜백메서드를 말한다.
생명 주기 메서드
생명주기 단계 | 생명주기 단계 | 특징 |
초기화 | init() | - 서블릿 요청 시 맨 처음 한 번만 호출된다. - 서블릿 생성 시 초기화 작업을 주로 수행한다. |
작업 수행 | doGet() doPost() |
- 서블릿 요청 시 매번 호출된다. - 실제로 클라이언트가 요청하는 작업을 수행한다. |
종료 | destroy() | - 서블릿이 기능을 수행하고 메모리에서 소멸될 때 호출된다. - 서블릿의 마무리 작업을 주로 수행한다. |
- init() 메서드는 실행 초기에 서블릿 기능 수행과 관련된 기능을 설정하는 용도로 많이 사용된다.
- destroy() 메서드는 서블릿이 메모리에서 소멸될 때 여러 가지 종료 작업을 수행한다.
- doGet()이나 doPost() 메서드는 서블릿의 핵심 기능을 처리하므로 반드시 구현해야 한다.
- Total
- Today
- Yesterday
- CSS 속성
- httpServletRequest
- Redux
- script element
- 세션
- 서브넷팅
- 서블릿
- HTML
- 리액트
- 스프링
- JSP
- 네트워크
- react
- 내장객체
- html css
- 스프링 시큐리티
- Binding
- a 태그
- 제이쿼리
- nodejs
- Servlet
- Session
- Network
- CSS
- Spring Security
- Spring
- el
- javaserverpage
- Java Server Page
- 미들웨어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |