백엔드/웹개발

[웹개발] 서블릿이란?

김곰댕 2022. 2. 18. 13:43
728x90

자바 서블릿(Java Servlet)?

자바 서블릿은 클라이언트의 요청에 따라 웹 페이지를 동적으로 생성하는 서버측 프로그램을 말하며, 자바로 작성되기 때문에 자바의 일반적인 특징을 모두 가진다. 하지만 서블릿은 일반 자바 프로그램과 다르게 독자적으로 실행되지 못하고 톰캣과 같은 JSP/Servlet 컨테이너에서 실행된다.

 

서블릿 동작 과정

 

서블릿의 특징

  • 서버 쪽에서 실행되면서 기능을 수행한다.
  • 기존의 정적인 웹 프로그래밍의 문제점을 보완하여 동적인 여러가지 기능을 제공한다.
  • 스레드 방식으로 실행된다.

  • 자바로 만들어져 자바의 특징(객체 지향)을 가진다.
  • 컨테이너에서 실행된다.
  • 컨테이너 종류와 상관없이 실행된다.(플랫폼 독립적)
  • 보안 기능을 적용하기 쉽다.
  • 웹 브라우저에서 요청 시 기능을 수행한다.

 

서블릿 API 계층 구조와 기능

서블릿 API는 Servlet과 ServletConfig 인터페이스를 구현해 제공하며 GenericServlet 추상 클래스가 이 두 인터페이스의 추상 메서드를 구현한다. 그리고 이 GenericServlet을 다시 HttpServlet이 상속받는다.

 

서블릿 생명주기 메서드

생명주기 단계 호출 메서드 특징
초기화 init() 서블릿 요청 시 맨 처음 한번만 호출
서블릿 생성 시 초기화 작업을 주로 수행
작업 수행 doGet() 서블릿 요청 시 매번 호출
doPost() 실제로 클라이언트가 요청하는 작업을 수행
종료 destroy() 서블릿이 기능을 수행하고 메모리에서 소멸될 때 호출
서블릿의 마무리 작업을 주로 수행

 

서블릿 생성 후 실행 과정

1. 사용자 정의 서블릿 클래스 만들기
2. 서블릿 생명주기 메서드 구현
3. 서블릿 매핑 작업
4. 웹 브라우저에서 서블릿 매핑으로 이름 요청하기

 

총 정리

  • 클라이언트와 서버는 HTML을 주고받음
  • 클라이언트에게 요청이 오면 서버와 HTTP방식으로 통신하게됨
  • HTML을 주고받을 때 <form>,<input>태그를 사용
  • HTML을 주고받는것은 정적임, 동적인것을 추가하기 위해 Servlet과 JSP를 사용
  • Servlet과 JSP는 request와 response로 요구를 주고받음
  • Servlet은 HTML을 분석하고 2) 또는 3)을 선택 (데이터베이스가 필요하면 2)과정으로)
  • response는 1)번또는 2)번에서 받은 결과값을 HTML문서로 만들어서 다시 보내줌
  • DAO와 VO를 사용하여 Oracle과 연결하며 table을 받아올 수 있음
  • Oracle에는 객체가 3개 존재 (table객체, row객체, column객체)
  • 자바에서는 오라클의 테이블을 리스트라고 하며, 리스트의 한줄한줄(row객체)을 VO class
728x90