웹 브라우저에 JSP 페이지에 해당하는 URL을 입력하면, 톰캣 서버는 다음과 같은 과정을 거쳐 JSP 페이지를 실행한다.
WAS는 JSP 페이지에 대한 요청이 들어오면 다음과 같은 처리를 한다.
JSP에 해당하는 서블릿이 존재하지 않을 경우(과정 1.1)
JSP에 해당하는 서블릿이 존재하는 경우(즉, 이미 과정 1.1~1.3을 거친 경우)
즉, JSP 페이지를 요청할 때에는 JSP를 직접 실행하는 것이 아니라, JSP를 자바 소스 코드로 변환한 뒤 컴파일해서 생성한 서블릿을 생성하는 것이다. 여기서 JSP 페이지를 자바 코드로 변경하는 단계를 "변환(translation)단계"(과정 1.2)라고 하며, 자바 코드를 서블릿 클래스로 변경하는 단계를 "컴파일(compile)단계"(과정 1.3)라고 한다.
톰캣은 work 폴더에 JSP를 변환한 자바 소스 코드와 서블릿 클래스를 생성한다. 예를 들어, 앞서 3장에서 실행했던 JSP의 자바 소스 코드와 서블릿 클래스는 다음 폴더에서 찾을 수 있다.
C:\apache-tomcat-8.0.2\work\Catalina\localhost\chap03\org\apache\jsp
위 폴더를 보면 JSP 파일을 자바 코드로 변환한 소스 코드와 컴파일된 클래스 파일을 발견할 수 있다.
JSP 페이지를 변경하면 JSP 페이지는 기존에 이미 서블릿이 생성되었는지에 상관없이 위의 과정을 거쳐 JSP 페이지로부터 서블릿 클래스를 다시 생성한다.
JSP를 실행한다는 말은 곧 JSP 페이지를 컴파일한 결과인 서블릿 클래스를 실행한다는 의미가 된다.
참고