본문 바로가기

cs/spring

[spring] Servlet이란

클라이언트의 요청을 처리하고 동적으로 그 결과를 처리하는 자바 기반의 웹 프로그래밍 기술 또는 클래스

 

HTML, CSS 를 사용해서 클라이언트에게 고정된 화면을 보여주는 사이트 정적사이트

JSP를 사용해서 상황에 따라 클라이언트에게 다른 결과 화면을 보여주는 사이트 동적사이트

 

Servlet은 동적사이트 즉, 웹서버가 동적인 페이지를 제공할 수 있도록 웹브라우저와 WAS(Web Application Server)간의 소통을 할때 소통의 중간 역할을 해줍니다.

 

우리가 웹 브라우저에서 어떤 URL을 호출하면 그 요청은 WAS를 통해 Servlet으로 전달되고 Servlet이 그 요청을 처리한 후, 응답을 만들어 브라우저로 보냅니다.

 

브라우저 → 톰캣(WAS) → Servlet Container → HttpServlet → doGet/doPost

 


순수 서블릿

Request URL:
http://localhost:8080/hello
Request Method:
GET

웹 브라우저에서 위와 같은 Http 요청을 보낸다고 가정하겠습니다.

 

이 경우에 WAS는 해당 HTTP요청을 처리해 줄 클래스가 필요합니다. 그 역할을 하는 것이 Servlet입니다.

@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/plain");
        response.getWriter().write("Hello, Servlet!");
    }
}

위 HelloServlet이 /hello 라는 URL로 Get이라는 Method로 요청이 들어왔을때 그 결과를 받아서 동적인 결과를 다시 웹 브라우저에게 전달하는 역할을 합니다.

여기서는 "Hello, Servlet!" 이라는 텍스트를 반환할겁니다.

 

Servlet의 동적 결과

 

 

순수 서블릿이라 얘기한 이유는, Spring boot에서는 @RequestMapping, @Controller와 같은 어노테이션을 통해 자동으로 서블릿을 처리할 수 있도록 합니다. 이 처럼 어노테이션만으로 각 요청을 매핑하고 처리할 수 있도록 해주는 것은 Spring의 DispatcherServlet의 역할입니다.

'cs > spring' 카테고리의 다른 글

[Spring] Spring MVC란? - MVC 구조  (0) 2025.05.25