Java
Java의 Servlet
정의
Java에서 HTTP 요청을 처리하는 프로그램
응답을 가공하여 동적인 페이지를 제공
목적 및 특징
목적
HTTP 요청을 읽고 응답을 만들어주는 역할
특징
- 클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트
- html을 사용하여 요청에 응답한다.
- Java Thread를 이용하여 동작한다.
- MVC 패턴에서 Controller로 이용된다.
- HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속받는다.
- UDP보다 처리 속도가 느리다.
- HTML 변경 시 Servlet을 재컴파일해야 하는 단점이 있다.
면접 질문
- Servlet이 필요한 이유
- HTTP 요청을 읽고 응답을 만들어주는 역할
- 소켓 연결
- 메시지 파싱
- Servlet의 동작방식을 개략적으로 설명
- 사용자가 URL을 입력하면 HTTP Request가 Servlet Container로 전송
- 요청을 전송받은 Servlet Container 는 HttpRequest, HttpResponse 객체를 생성
- 사용자가 요청한 URL이 어느 서블릿에 대한 요청인지 찾는다.
- service 메서드를 호출한 후 클라이언트의 GET, POST 여부에 따라 doGet(), doPost()를 호출
- 동적페이지를 생성한 후, HttpServletResponse 객체에 응답을 보낸다.
- 응답 후, HttpServletRequest, HttpServletResponse 객체를 소멸