WAS가 웹브라우저로부터 Servlet 요청을 받으면
- 요청을 받을 때 전달 받은 정보를 HttpServletRequest 객체를 생성하여 저장
- 웹브라우정에서 응답을 돌려줄 HttpServletResponse 객체를 생성(빈 객체)
- 생성된 HttpServletRequest(정보가 저장된)와 HttpServletResponse(비어 있는)를 Servlet에 전달
HttpServletRequest
- Http 프로토콜의 request 정보를 서블릿에게 전달하기 위한 목적으로 사용
- Header 정보, Parameter, Cookie, URI, URL 등의 정보를 읽어들이는 메소드를 가진 클래스
- Body의 Stream을 읽어들이는 메소드를 가지고 있음
HttpServletResponse
- Servlet은 HttpServletResponse 객체에 Content Type, 응답코드, 응답 메시지 등을 담아서 전송함
- .setHeader()을 통해 헤더를 세팅할 수 있다.
WAS에 Http URL 요청이 발행하면, Spring에서는 Servlet을 통해 해당 요청을 처리할 수 있었다.
Servlet 특징
- 클라이언트의 request에 대해 동적으로 작동하는 웹 애플리케이션 컴포넌트
- HTML을 사용하여 Response한다.
- JAVA의 스레드를 이용하여 동작한다.
- MVC 패턴에서의 컨트롤러로 이용된다.
- HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속받는다.
- UDP보다 속도가 느리다.
- HTML 변경 시 Servlet을 재 컴파일해야 하는 단점이 있다.
서블릿 컨테이너란?
서블릿 컨테이너란 말 그대로 서블릿을 담고 관리해주는 컨테이너입니다.
서블릿 컨테이너는 구현되어 있는 servlet 클래스의 규칙에 맞게 서블릿은 관리해주며 클라이언트에서 요청을 하면 컨테이너는 HttpServletRequest, HttpServletResponse 두 객체를 생성하며 post, get여부에 따라 동적인 페이지를 생성하여 응답을 보냅니다.
참고
https://coding-factory.tistory.com/742