클라이언트의 요청을 처리하고 동적으로 그 결과를 처리하는 자바 기반의 웹 프로그래밍 기술 또는 클래스
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!" 이라는 텍스트를 반환할겁니다.
순수 서블릿이라 얘기한 이유는, Spring boot에서는 @RequestMapping, @Controller와 같은 어노테이션을 통해 자동으로 서블릿을 처리할 수 있도록 합니다. 이 처럼 어노테이션만으로 각 요청을 매핑하고 처리할 수 있도록 해주는 것은 Spring의 DispatcherServlet의 역할입니다.
'cs > spring' 카테고리의 다른 글
[Spring] Spring MVC란? - MVC 구조 (0) | 2025.05.25 |
---|