Java Server Page

 

JSP (Java Server Page)는 Java 소스가 들어가 있는 HTML 코드이다.

서블릿은 자바 소스코드 속에 HTML코드가 들어가는 형태인데, JSP는 이와 반대로 HTML 소스코드 속에 자바 소스코드가 들어가는 구조를 가지고 있다. JSP에서 자바코드는 <%자바소스%> 혹은 <%= 자바소스 %>, <%! 자바소스 %> 등과 같이 입력되어 있는데, 이러한 코드의 블록을 스크립트릿(scriptlet) 이라고 부른다. 이러한 자바소스로 작성된 부분은 웹 브라우저로 보내지는 것이 아니라 웹 서버에서 실행되는 부분이다. 또한 Java 파일과 다르게 JSP는 컴파일의 과정이 필요없이 바로 서버에 적용이 가능하다. JSP는 WAS(Web Application Server)에 의하여 서블릿 클래스로 변환되어 사용되어진다.

JSP의 변환과정의 아래의 이미지와 같다.

출처 : https://getput.tistory.com/4

 

출처 : https://getput.tistory.com/4

 

  1. 클라이언트가 웹서버에 서블릿에 대한 요청을 하게되면 웹서버는 서블릿컨테이너에게 클라이언트로부터 전달받은 요청을 전달한다.
  2. 요청을 받은 컨테이너는 HTTP Request와 HTTP Response 객체를 만들어, 이들을 통해 서블릿 doPost()나 doGet()메소드 중 하나를 호출한다.
  3. 서블릿은 데이터의 입력, 수정 등에 대한 제어를 JSP에게 넘겨 프레젠테이션 로직을 수행한 후 컨테이너에게 Response를 전달한다. (컨테이너의 메모리에 적재)
  4. 이렇게 만들어진 결과물(Servlet)은 클라이언트가 해당 페이지(JSP)를 호출했을 때 Servlet 클래스를 다시 컴파일 할 필요없이 재사용이 가능하다. 만약 변경이 있거나 기존에 컨테이너에 존재하지 않는 Servlet 클래스라면 위의 과정을 반복하여 다시 서블릿 컨테이너에 적재한다. (해당 JSP파일은 다시 Servlet인 Java 소스파일로 변환되고 다시 Class 파일로 컴파일된 후 이 Class파일이 JSP/Servlet 컨테이너인 WAS (예: Tomcat) 내에 적재) 적재된 후에는 Servlet 클래스가 실행되어 그 결과가 최종적으로 클라이언트에게 전달된다.

'WebBase' 카테고리의 다른 글

[WebBase] Ajax  (0) 2022.06.23
[WebBase] JSTL  (0) 2022.06.22
[WebBase] Servlet (서블릿)  (0) 2022.06.16
[WebBase] WAS(Web Application Server)  (0) 2022.06.15
[WebBase]WebServer  (0) 2022.05.31

+ Recent posts