웹 서버에는 JSP 엔진, 즉 JSP 페이지를 처리하는 컨테이너가 필요합니다. JSP 컨테이너는 JSP 페이지에 대한 요청을 가로채는 역할을 합니다. 이 튜토리얼은 JSP 페이지 개발을 지원하기 위해 JSP 컨테이너가 내장된 Apache를 사용합니다.
JSP 컨테이너는 웹 서버와 함께 작동하여 JSP가 필요로 하는 런타임 환경 및 기타 서비스를 제공합니다. JSP의 일부인 특수 요소를 이해하는 방법을 알고 있습니다.
다음 다이어그램은 웹 애플리케이션에서 JSP 컨테이너 및 JSP 파일의 위치를 보여줍니다.
JSP 처리
다음 단계는 웹 서버가 JSP를 사용하여 웹페이지를 생성하는 방법을 설명합니다 -
-
일반 페이지와 마찬가지로 브라우저는 웹 서버에 HTTP 요청을 보냅니다.
-
웹 서버는 HTTP 요청이 JSP 페이지에 대한 것임을 인식하고 JSP 엔진에 전달합니다. 이는 .jsp로 끝나는 URL 또는 JSP 페이지를 사용하여 수행됩니다. .html 대신 .
-
JSP 엔진은 디스크에서 JSP 페이지를 로드하고 이를 서블릿 콘텐츠로 변환합니다. 이 변환은 모든 템플릿 텍스트가 println() 문으로 변환되고 모든 JSP 요소가 Java 코드로 변환되는 매우 간단합니다. 이 코드는 페이지의 해당 동적 동작을 구현합니다.
-
JSP 엔진은 서블릿을 실행 가능한 클래스로 컴파일하고 원래 요청을 서블릿 엔진으로 전달합니다.
-
Servlet 엔진이라고 하는 웹 서버의 일부는 Servlet 클래스를 로드하여 실행합니다. 실행하는 동안 서블릿은 HTML 형식으로 출력을 생성합니다. 출력은 HTTP 응답 내에서 서블릿 엔진에 의해 웹 서버로 더 전달됩니다.
-
웹 서버는 정적 HTML 콘텐츠 측면에서 브라우저에 HTTP 응답을 전달합니다.
-
마지막으로 웹 브라우저는 HTTP 응답 내에서 동적으로 생성된 HTML 페이지를 마치 정적 페이지인 것처럼 처리합니다.
위에서 언급한 모든 단계는 다음 다이어그램에서 볼 수 있습니다.
일반적으로 JSP 엔진은 JSP 파일에 대한 서블릿이 이미 존재하는지 여부와 JSP의 수정 날짜가 서블릿보다 오래된지 여부를 확인합니다. JSP가 생성된 서블릿보다 오래된 경우 JSP 컨테이너는 JSP가 변경되지 않았으며 생성된 서블릿이 여전히 JSP의 내용과 일치한다고 가정합니다. 이것은 다른 스크립팅 언어(예:PHP)보다 프로세스를 더 효율적으로 만들어 더 빠르게 만듭니다.
따라서 어떤 면에서 JSP 페이지는 실제로 Java 프로그래밍 마법사가 되지 않고도 서블릿을 작성하는 또 다른 방법입니다. 번역 단계를 제외하고 JSP 페이지는 일반 서블릿과 동일하게 처리됩니다.