이제, 앞서 봤던 JSP가 어떻게 실행되는지 하나씩 톺아보자.
클라이언트가 form.html을 요청하면 이 요청을 받은 컨테이너가 form.html을 읽어온다.
이를 읽어온 후 클라이언트에게 해당 파일을 보여준다
하고 이를 다시 컨테이너로 보낸다.
컨테이너는 이를 받아서 담당 서블렛에게 요청을 넘기고 해당 서블렛은 BeerExpert Class를 호출한다.
이 클래는 맥주에 대한 조언을 서블릿으로 다시 넘기고,이 정보를 Request Object에 저장한다.
그 후, JSP에 해당 정보를 포워딩하고 JSP는 서블릿이 request에 넣은 정보를 가져와 HTML페이지를 작성하고, 컨테이너는 이를 클라이언트에게 넘겨 보여주게 된다.
여기서 제일 중요한
JSP의 처리 과정 및 Servlet과의 관계
을 우리는 더 자세히 살펴보자
Tomcat은 JSP파일을 Servlet이 포함된 Java Source File로 변환하고 이를 컴파일 하여 클래스 파일을 만들어 실행한 결과를 웹 브라우저로 전달한다.
즉, Tomcat -> JSP->Servlet.java->Compile->Servlet.class->톰캣 실행한다.
그러면 위와 같이 기존 JSP가 Java로 변화는것을 확인할 수 있다.
*out객체의 wirte, println method가 jsp파일의 내용을 출력시켜주는 역할을 한다.
Java 변환 및 컴파일
JSP파일을 처음 요청했을 때만 일어난다.
요청했던 JSP파일을 재요청 시
이미 메모리에 적재된 클래스를 재실행
JSP로 작성된 웹 페이지 응답은 하드디스크 접근 없이 메모리에서 바로 응답한다.
이와 같이
class 파일이 JSP 파일보다 이후에 만들어진 최신 class 파일인지 반드시 확인 후 수행 결과를 웹 브라우저로 보내준다!