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