JSP 1 - 웹 서버의 동작 (Web, WAS, Servlet)
실행 흐름
사용자 → request → 웹 서버 → WAS → web/server app의 코드 실행 → DB 결과 반환 → WAS → 웹 서버 → response → 사용자
여기서 말하는 웹 서버(Web Server)란?
Apache, Nginx 같은 프로그램으로 사용자의 요청을 가장 먼저 받는 녀석이다.
1. 정적 데이터 요청 → 바로 응답
2. 동적 데이터 요청 → WAS에게 위임 → WAS가 처리 후 웹 서버한테 반환 → 응답
Servlet이란?
각각의 read, update, delete 따위에 대한 사용자 요청을 처리를 하는 server application 조각들이다.
html을 이용하여 응답하며, MVC에서 Controller와 대응된다.
왜 이렇게 조각을 내서 사용할까?
당연히 성능이랑 관련이 있다.
매번 요청이 들어올 때마다,
모든 기능을 일일이 로드시키지 않아도 되기 때문이다.
<예시>
www.이것이웹주소다.com/컨텍스트따위/서블릿1번
www.이것이웹주소다.com/컨텍스트따위/서블릿2번
www.이것이웹주소다.com/컨텍스트따위/read
www.이것이웹주소다.com/컨텍스트따위/delete
Tomcat
일반적으로 Java 웹 개발을 할 때 사용되는 WAS 프로그램이다.
WAS
동적으로 데이터를 제공하기 위한 어플리케이션 서버이다. (ex. DB 조회)
JSP/Servlet 따위가 동작하기 위한 환경을 제공한다.
서블릿 컨테이너라고도 한다.
다시 말해 이 컨테이너가 JSP/Servlet을 실행시킨다.
그리고 웹 서버와
httpServletRequest와 httpServletResponse 객체를 통해 대화한다.
httpServletRequest == 입력 담당
httpServletResponse == 출력 담당