서블릿이란?
서블릿이란 동적 웹 페이지를 만들 때 사용되는(클라이언트의 요청을 처리하고 결과를 반환하는) 자바 기반의 웹 애플리케이션 프로그래밍 기술이다. 서블릿은 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해준다.(순수 자바를 이용하여 웹을 만들 때 사용한다)
서블릿은 서버에서 실행되다가 웹 브라우저에서 요청을 하면 해당 기능을 수행한 후 웹 브라우저에 결과를 전송한다.
JSP와 차이점으로는
JSP는 HTML 문서 안에 Java코드를 포함하는 반면, 서블릿은 Java코드 안에 HTML을 포함하고 있다.
특징
Spring boot를 사용하지 않을 때, MVC 패턴에서 Controller의 역할으로 이용된다.
Java Thread를 이용하여 동작한다.
HTTP프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속받는다.
UDP보다 처리속도가 느리다.
HTML 변경 시 Servlet을 재컴파일해야하는 단점이 있다.
서블릿의 동작과정
클라이언트가 웹 요청을 하면 웹 서버는 그 요청을 tomcat(WAS의 종류)에 위임한다. 그러면 tomcat은 각 요청에 해당하는 서블릿을 실행한다. 그리고 서블릿은 요청에 대한 기능을 수행한 후 결과를 반환하여 클라이언트에 전송한다.
▶ 서블릿 형식
public class FirstServlet extends HttpServlet {
@Override
public void init() {
...
}
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) {
...
}
@Override
public void destroy() {
...
}
}
서블릿의 생명주기
서블릿도 자바 클래스이므로 실행하면 초기화부터 서비스 수행 후 소멸하기까지의 과정을 거친다. 이 과정을 서블릿의 생명주기라고하며 각 단계마다 호출되어 기능을 수행하는 콜백 메서드를 서블릿 생명주기 메서드라고 한다.
초기화 : init() -- 서블릿이 메모리에 로드될 때 한 번만 호출(코드 수정 시 재호출 필요)
작업수행 : doGet(), doPost() -- 작업 수행시 get, post 필요시 호출(요청마다 호출 필요)
종료 : destroy() -- 서블릿이 메모리에서 해제되면 호출
서블릿 컨테이너
구현되어 있는 servlet클래스의 규칙에 맞게 서블릿을 담고 관리해주는 컨테이너다. 클라이언트에서 요청을 하면 컨테이너는 HttpServletRequest, HttpServletResponse 두 객체를 생성하여, post, get 여부에 따라 동적인 페이지를 생성하여 응답을 보낸다.
'기술 스텍 > Java' 카테고리의 다른 글
[Java] 가비지 컬렉션이란? (0) | 2024.01.07 |
---|---|
[Collection] ArrayList를 왜 List로 받아야 하는가? List의 종류 (0) | 2023.06.24 |
java기초(7) 제네릭스 (0) | 2023.01.24 |
java 기초(6) (0) | 2023.01.23 |
java 기초(5) (0) | 2023.01.23 |