본문 바로가기
Etc

서블릿(Servlet)

by 당리 2024. 9. 1.

서블릿이란?

자바를 기반으로 하는 웹페이지를 동적으로 만들어줄 수 있는 일종의 프로그램을 말한다.

 

 

 


위 그림에서 볼 수 있듯 WEB 서버는 사용자의 요청에 따라 정적인 페이지를 제공한다.

그리고 WAS는 사용자의 요청 중 연산이 필요한 부분을 맡아서 그 결과를 계산한다.

그리고 WAS는 연산 결과를 웹서버로 제공하고 웹서버 정적 페이지를 만들어 사용자에게 전달한다.

이때 WAS에서 연산을 담당하는 것이 서블릿이다.

 

서블릿은 WAS 안에 있는 서블릿 컨테이너 또는 웹 컨테이너라고 불리는 공간에서 활용하게 된다.

 

 

 

서블릿을 작성해보면 알겠지만 서블릿은 자바 클래스의 형태를 가지고 있다.

즉 서블릿은 자바 언어로 쓰여지고 자바를 기반으로 하는 프로그램이라는 것이다.

그리고 이러한 서블릿 클래스는 javax.servlet.http라는 패키지 안에 포함되어있다.

javax.servlet 패키지는 서블릿 구현을 위한 다양한 인터페이스와 클래스가 포함된 꾸러미다.

 

그리고 우리가 쓰는 서블릿 클래스는 이 패키지 안에서 하나를 빌려와서 구현한 것이다.

 

 

1. HttpServlet 추상 클래스를 상속한 일반적인 서블릿 실행 순서

 

 

 

 

 

1. 클라이언트에서 URL 호출
2. 웹서버에서 URL을 확인하여 해당 서블릿으로 요청 전달, 없으면 서블릿 클래스의 init()으로 생성
3. 서블릿 컨테이너는 요청정보를 HttpServletRequest, HttpServletResponse 두 객체에 저장
4. 서블릿 클래스의 service()메소드 호출 (HTTP Method에 따라 서블릿의 doGet, doPost 호출)
5. 요청 처리 후 HttpServletResponse 객체에 HTTP 데이터를 담아 응답
6. 웹서버가 클라이언트에 응답처리
7. 서블릿의 destroy() 호출하여 GC에 의해 서블릿 종료

 

 

2. 서블릿컨테이너와 스프링컨테이너

 

'Etc' 카테고리의 다른 글

Int와 Integer 확인 사항  (0) 2024.09.22
Broken pipe 오류  (1) 2024.09.08
Eclipse 'Loading descriptor for ~' 에러  (1) 2024.08.30
Refactoring 간단 예제  (0) 2024.08.25
Ajax 요청시 사용하는 withCredentials 옵션의 의미  (0) 2024.08.25