서블릿이란?
2020. 1. 27. 16:56ㆍJSP
SMALL
서블릿
서블릿 : 웹 애플리케이션을 개발할 때 사용하는 핵심 기술
- 자바의 모든 API 사용 가능
- 한 번 만들어 놓으면 다양한 서버 환경에서도 실행 가능
- 웹 앱에서 효율적인 자료 공유 방법 제공
- 다양한 오픈소스 라이브러리
- MVC패턴을 쉽게 적용
- 웹 디자이너와 개발자 간에 협업이 원할
서블릿과 서블릿 컨테이너
구분 | 웹 서버 | 서블릿 컨테이너(ex 톰캣) |
사용목적 | 웹 서비스 제공 | 서블릿 기반 프로그램 실행 및 처리 |
처리 콘텐츠 | HTML, CSS, JS, 이미지 등 | 서블릿 클래스 |
실행방법 | URL 요청에 의해 실행, 매번 디스크에서 읽어 처리 | 서블릿 클래스 정보에 따라 서버에 매핑된 URL 정보에 따라 실행하며 컨테이너에 적재된 상태에서 처리 |
JSP 실행 | 서블릿 컨테이너로 넘겨 처리 | 자체 처리 |
특징 | 웹 서비스 제공을 위한 다양한 설정 제공 | 기본적인 웹 서버 기능을 내장하고 있으나, 고급 설정이나 성능은 떨어짐(웹 서버와 병행 추천) |
서블릿 동작 과정
[컨테이너]서블릿 클래스 로딩 -> 서블릿 인스턴스 생성(생성자) -> init() 호출(초기화 작업) -> 인스턴스로부터 스레드 생성 후 service() 호출(GET/POST) -> destroy() 호출(종료)
생명주기
init()
요청이 들어오면 해당 서블릿이 메모리에 있는지 확인 -> 없으면 컨테이너에 적재 -> init 메서드로 각종 초기화 작업 수행(단 한 번만 실행)
service()
스레드를 통해 실행 -> doGet(), doPost()로 분기 -> 요청처리는 request객체, 응답은 response객체로 처리
destroy()
컨테이너로부터 종료 요청이 있을 때 실행(단 한 번만 실행)
서블릿 구조
서블릿 구조와 API
API(Application Programming Interface) : 특정 클래스를 다른 프로그램에서 사용하기 위해 필요한 정보를 규격화 해 놓은 것
- javax.Servlet.GenericServlet의 하위 클래스 javax.servlet.http.HttpServlet
- 주로 javax.servlet.http.HttpServlet 클래스를 상속받아 구현
- 일반적으로 개발자들은 doGet(), doPost() 메서드를 구현
GET 방식
- 서버에 있는 정보를 가져오기 위해 설계된 방식
- 240Byte의 데이터까지 전달 가능
- QUERY_STRING 환경변수를 통해 서버로 전달(?이후의 값이 전달되며, &로 여러 속성 값 입력 가능)
- URL이 노출되어 보안에 취약
POST 방식
- 서버에 데이터를 올리기 위해 설계된 방식
- 크기 제한 없음
- URL에 표시되지 않음
LIST
'JSP' 카테고리의 다른 글
JSP 기본문법 - 주석, 지시어 (0) | 2020.01.28 |
---|---|
서블릿 - 계산기 실습 (0) | 2020.01.27 |
JSP란? - 간단한 프로그램 실습 (0) | 2020.01.26 |
JSP 개발환경 구축하기 3.2 - 이클립스(기본 환경 설정) (0) | 2020.01.23 |
JSP 개발환경 구축하기 3.1 - 이클립스(설치) (0) | 2020.01.23 |