Spring
Servlet
Anoi
2023. 6. 3. 01:16
Servlet
정적인 컨텐츠에만 응답할 수 있던 웹서버에 프로그램을 붙여
WAS에서 동적 웹페이지 구현을 할 수 있도록 도와주는 자바 클래스의 일종이다. (프로그래밍 기술)
- 서블릿은 웹에서의 수많은 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해주는 기술
- MVC 패턴에서의 컨트롤러로 이용된다.
- HTML 변경 시 Servlet을 재 컴파일해야 하는 단점이 있다.
서블릿 생성주기
- init(): 서버가 켜질 때 한번만 실행
- service: 모든 유저들의 요청들을 받는다.
- destroy(): 서버가 꺼질 때 한번만 실행
서블릿 컨테이너
서블릿을 담고 관리해주는 컨테이너
구현되어 있는 servlet 클래스의 규칙에 맞게 서블릿을 관리한다.
클라이언트에서 요청을 하면 컨테이너는 HttpServletRequest, HttpServletResponse 두 객체를 생성하며 post, get여부에 따라 동적인 페이지를 생성하여 응답을 보낸다.
서블릿 동작 과정
- 사용자가 URL을 클릭하면 HTTP Request를 Servlet Container에 보낸다.
- Servlet Container는 HttpServletRequest, HttpServletResponse 두 객체를 생성한다.
- 사용자가 요청한 URL을 분석하여 어느 서블릿에 대한 요청인지 찾는다.
- 컨테이너는 서블릿 service()메소드를 호출하며, POST/GET 여부에 따라 doGet() 또는 doPost()가 호출된다.
- doGet()이나 doPost() 메소드는 동적인 페이지를 생성한 후 HttpServletResponse 객체에 응답을 보낸다.
- 응답이 완료되면 HttpServletRequest, HttpServletResponse 두 객체를 소멸시킨다.