Skip to Content
Suffering builds character
아카이브15.서블릿Servlet/JSP특징2.요청 및 응답 처리1.서블릿 구현 및 동작

1.서블릿 구현 및 동작

1. Servlet 개요

Servlet은 주로 웹 애플리케이션 서버에서 동작하는 프로그램 구현 시 사용 동시 접속자가 늘어나면 효율이 떨어지는 CGI기술의 대안으로 등장

서블릿은 클라이언트의 요청에 따라 서버가 실행할 수 있는 유일한 자바 파일(.java 파일)

서블릿을 구현, 동작시키기 위한 조건은 서블릿 API를 통해 제공받을 수 있으며, javax.servlet.http.HttpServlet만 상속(extends)받으면 됨

앞으로 작성할 모든 .java 파일에 extends HttpServlet 작성하여 해당 java 파일을 Servlet으로 동작하도록 구현

HelloServlet.java
class HelloServlet extends HttpServlet { ... }

HttpServlet을 상속받은 클래스를 서블릿이라고 함

Note

.java 파일이기 때문에 서블릿도 본질적으로는 자바 클래스

2. Servlet 동작 원리

사용자 요청에 따른 서버의 응답 흐름은 다음과 같음

요청 전송, Sending a Request

서버가 사용자(Client)로부터 특정 URL 경로로 HTTP 요청을 받음

서블릿 객체 생성(인스턴스화), Instantiate a Servlet

서블릿 컨테이너는 web.xml 파일 이나 @WebServlet 으로 맵핑된 정보를 토대로 요청 받은 URL에 맵핑된 서블릿 클래스를 인스턴스화함

서블릿 컨테이너 내부
new FirstServlet(); // 의사 코드, 정확하게는 다른 코드 형태로 인스턴스가 생성됨

요청에 따른 처리 로직 수행, Processing the business logic

생성된 클래스 내 메서드에 작성된 소스 코드를 실행

FirstServlet.java
@WebServlet("/hello") public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/plain; charset=UTF-8"); try (PrintWriter out = resp.getWriter()) { out.print("Hello!"); } } }

사용자에게 결과 응답, Response to the Client

결과 데이터 or 페이지를 사용자에게 응답

Last updated on