[작성일: 2023. 04. 01]
기본 개념
서버(server)
- 사용자의 요청에 맞는 서비스를 제공하는 것
- 요청(Request) <> 응답(Response)
httpd
- 클라이언트 요청을 인식하는 프로그램
- 요청을 받아서 웹 서버에 전달함.
- 스레드 스케쥴링
web
- 페이지의 요청(Request)과 응답(Response)이 일어나는 장소
- 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 공간
web server(http)
- 아파치(Apache)
- 사용자의 요청이 정적인지, 동적인지 판단함.
- 정적이면 준비되어 있는 리소스(html 등)를 그대로 돌려줌.
- 동적이면 웹 컨테이너에 요청을 보냄.
웹 컨테이너(서블릿 컨테이너)
- 사용자의 동적 데이터를 servlet, jsp로 연산하거나 제어하며 DB를 접속 등을 통해 정제된 데이터(정적 데이터)로 가공 후 응답함.
WAS(Web Application Server)
- 동적 데이터를 처리할 서블릿을 메모리에 할당
- 서블릿에 대한 스레드 생성
- 요청과 응답 객체를 생성 후 서블릿에 전달
기본 용어
Context root
- 메타 정보와 웹 정보를 관리하는 META-INF와 WEB-INF 파일이 자동으로 생성
- JSP 파일은 이 하위에 저장되어야 경로를 찾을 수 있음.
Content Directory
- 프로젝트명 의미
- url의 호스트, 포트 뒤에 존재함.
- localhost:1234/@@@/@@@
Tomcat의 Servlet
서블릿 인터페이스
- 서블릿은 웹 서버 내에서 동작하는 작은 자바 프로그램
- 서블릿은 웹 클라이언트에게 요청(request)을 받고 응답(response)을 해 줌.
- GenericServlet 또는 HttpServlet을 상속받아서 인터페이스를 구현해야 함.
서블릿 라이프사이클
- 서블릿은 생성 이후 init() 메서드로 초기화
- 클라이언트가 서비스(service())로 보낸 요청을 처리함.
- 서블릿 사용이 중지되면 destroy()를 이용해서 제거함.
init()
- 어느 서블릿이 어느 서비스에 배치되었는가를 나타내기 위해 서블릿 컨테이너로부터 호출되는 메서드
- 서블릿이 요청을 받기 전, 반드시 설정해야 함.
- 오류 유형 ServletException 웹 서버의 설정 시간 내에 반환되지 않는 경우 발생
service(ServletRequest req, ServletResponse res)
- 서블릿이 요청에 응답하도록 서블릿 컨테이너에서 호출되는 메서드
- 서블릿의 init()가 성공해야 실행 가능함.
- 서블릿 객체가 생성되고 메모리에 존재하여 동일한 서블릿에 대한 요청이 오면 init()를 수행하지 않고, 메모리에 남겨둔 것을 재사용함.
- 처음 실행할 때는 약간 느린 감이 있으나 처음 이후에는 상대적으로 빠름.
🐣 해당 게시글은 입문 개발자가 요약/정리한 글이므로 틀린 내용이나 오타가 있을 수 있습니다.