JSP 처리 과정

de_sj_awa·2021년 5월 20일
0

JSP 처리 과정

웹 브라우저에 JSP 페이지에 해당하는 URL을 입력하면, 톰캣 서버는 다음과 같은 과정을 거쳐 JSP 페이지를 실행한다.

WAS는 JSP 페이지에 대한 요청이 들어오면 다음과 같은 처리를 한다.

JSP에 해당하는 서블릿이 존재하지 않을 경우(과정 1.1)

  • JSP 페이지로부터 자바 코드를 생성한다. (과정 1.2)
  • 자바 코드를 컴파일해서 서블릿 클래스를 생성한다. (과정 1.3)
  • 서블릿에 클라이언트 요청을 전달한다. (과정 2.1)
  • 서블릿이 요청을 처리한 결과를 응답으로 생성한다. (과정 2.2)
  • 응답을 웹 브라우저에 전송한다. (과정 3)

JSP에 해당하는 서블릿이 존재하는 경우(즉, 이미 과정 1.1~1.3을 거친 경우)

  • 서블릿에 클라이언트 요청을 전달한다. (과정 2.1)
  • 서블릿이 요청을 처리한 결과를 응답으로 생성한다. (과정 2.2)
  • 응답을 웹 브라우저에 전송한다. (과정 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 페이지를 컴파일한 결과인 서블릿 클래스를 실행한다는 의미가 된다.

참고

  • 최범균의 JSP2.3 웹 프로그래밍
profile
이것저것 관심많은 개발자.

0개의 댓글